环境搭建: 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