React Native 第一坑(持續更新)
阿新 • • 發佈:2019-02-18
環境搭建: https://reactnative.cn/docs/0.51/getting-started.html
1. 在同一個js檔案中,class定義的位置必須在引用之前,否則就會造成找不到class的問題
2. this的執行時可變的,但在箭頭函式中是固定的,箭頭函式體內的this指向定義時所在的物件,不是使用時所在的物件。
3. 儘量多用this指標,可以代替bind函式;
4. 佈局時,在子view的flex=1時,padding和margin才能生效;
5. setState時,如果新值的地址沒有改變,則頁面不會重新整理;
6. state、props的值不會在setState( )或給props重新賦值之後立即生效(是非同步的);
7.
DeviceEventEmitter.addListener(REFRESH_GAME_RANK,
this.refresh);
監聽器的引數this.refresh() 不能為帶引數的函式,否則會報錯undefined,也可能是沒弄清楚怎麼傳引數。
8. 動畫過程:
//監聽Animated.Value的變動 listener = (newValue) => { console.log(newValue); } <Animated.ScrollView scrollEventThrottle={16} onMomentumScrollBegin={this._onMomentumScrollBegin} onMomentumScrollEnd={this._onMomentumScrollEnd} onScrollEndDrag={this._onScrollEndDrag} onScroll={Animated.event( [{nativeEvent: {contentOffset: {y: this.state.scrollAnim}}}], {useNativeDriver: true, listener: this.listener}, )}
如果添加了動畫值的監聽,則動畫執行之後,按鈕點選無響應,需要自己在listener中處理。
{useNativeDriver: true, listener: this.listener}
9. 對於某個頁面可能同時存在多個例項的情況,慎用redux