React Native 第一坑(持续更新)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值