1. 程式人生 > >React Native開發學習記錄(我的開發環境是ubuntu)

React Native開發學習記錄(我的開發環境是ubuntu)

1、React Native 在windows下的環境搭建

我參考的博文:

PS:最重要的一點,在windows下要安裝C++環境

2、React與React Native的關係

我的理解:這和Java與Android的關係差不多,React Native使用的是React.js的語法,ReactNative主要負責把js變成apk。

3、Ubuntu下搭建react native開發環境,參考官網,搭建過程中遇到的問題

一、eclipse sdk manager無法開啟,提示找不到java
解決方法
 (1) 進入到sdk所在的目錄的tools資料夾下,開啟'andriod'可執行檔案
 (2) 修改java-cmd變數為你jdk中java的路徑
二、eclipse無法顯示選單
寫一個檔案,命名為eclipse.sh:
寫入如下內容:
export UBUNTU_MENUPROXY=0
/home/xuzhifan/soft/adt/eclipse/eclipse(你的eclipse程式的路徑)
如何啟動呢?
進入eclipse.sh所在資料夾,在命令列輸入sh eclipse.sh
三、配置好sdk後,仍提示沒有adb,這是因為adb是32位程式,64位的ubuntu不支援。
怎麼解決:
sudo apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
四、watchman安裝不成功,解決
cd watchman
sudo apt-get install python-dev    (所需的環境)
sudo apt-get install autoconf        (所需的環境)
./autogen.sh
./configure
make
sudo make install
五、按官網那樣安裝的node的版本太低不能用,所以要自己到node.js官網下載並安裝 

4、學習過程參考的部落格

5、React Native編輯器Atom

我安裝的外掛:atom-beautify(格式化程式碼)、Nuclide(react native程式碼提示)、atom-terminal

安裝步驟:Packages->Settings View->Install Packages->輸入外掛名->搜尋->點install->重啟

6、react native最低支援android sdk 16

證據如下:

> Manifest merger failed : uses-sdk:minSdkVersion 11 cannot be smaller than version 16 declared in library [com.facebook.react:react-native:0.22.2] /home/xuzhifan/workspace/ReactNativeDemo/AwesomeProject/android/app/build/intermediates/exploded-aar/com.facebook.react/react-native/0.22.2/AndroidManifest.xml

7、

下面文字的出處

由於眾所周知的網路原因,react-native命令列從npm官方源拖程式碼時會遇上麻煩。請先將npm倉庫源替換為國內映象:

npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
或者
sudo gedit /home/xuzhifan/.npmrc(/你的主目錄/.npmrc)
編輯檔案輸入
registry = http://registry.npm.taobao.org
disturl = https://npm.taobao.org/dist
 

8、如何執行從github上下載 的react native開源專案

(1)、進入專案目錄

(2)、npm install (為專案增加node_modules資料夾)

(3)、react-native start(開啟服務)

(4)、react-native run-android(安裝並執行程式)

9、遍歷json資料,動態新增html元素

render: function() {
          return (
            <ol>
              {
                React.Children.map(this.props.children, function (child) {
                  return <li>{child}</li>;
                })
              }
            </ol>
          );
        }