[React Native] 关于 setState

  1. 当组件处于批处理阶段,setState 将不会马上更新 state,这种情况下,想要执行完 setState 后,依赖 state 进行后续的 setState 是会有问题的;
  2. 对上述问题,有两个处理办法:
    a. 调用 setState 时与值一并传入一个回调,该回调在 setState 执行完成时将被执行,可在其中依赖 this.state 获得有效的新值:
this.setState({money: 10000}, () => {
    this.setState({
        money: this.state.money * 2
    });
});

b. 调用 setState 时传入算值函数,该函数在对 state 设值时执行,并带有 previousState, currentProps 参数,可作为算值依据:

this.setState({money: 10000});
this.setState(function(previousState, currentProps) {
    return {money: previousState * 2};
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容