美文网首页
React初探(二)

React初探(二)

作者: 养猫的哈士奇_杨柳 | 来源:发表于2020-03-17 15:20 被阅读0次

探索state和setState

关于state和setState有以下几点注意:

1.调用setState方法来修改state的值
this.setState({ obj: 'new' })
2.state的更新会被合并

对于如下的state数据,调用setState只会更新obj1的数据,然后合并obj2的数据返回新的state

this.state = {
  obj1: 1,
  obj2: 'str'
}
// 此处会只更新obj1的数据,然后合并obj2的数据返回新的state
this.setState({ obj1: 2 })
3.setState的更新是异步的
this.state = {
bb: 1
}
this.setState((preState, preProps) => {
   return {
      bb: preState.bb + 1
   };
});
console.log(this.state.bb); // 此处打印出来的值为1

因为setState的更新是异步的,所以先执行打印逻辑,后执行修改数据的逻辑,故打印的是1,如需解决上述问题:
1.可使用async await 修饰符

  async changeState () {
    await this.setState((preState, preProps) => {
      return {
        bb: preState.bb + 1
      };
    });
    console.log(this.state.bb); // 此处打印为2
  }

2.使用setState的回调函数,数据更新完成后会调用callback

this.setState((preState, preProps) => {
   return {
      bb: preState.bb + 1
   };
},() => {
  console.log(this.state.bb); // 此处打印出来的值为2
});

3.在生命周期componentDidUpdate 中执行所需逻辑

相关文章

  • React Native初探(三)- Mac

    在React Native初探(一) - Mac和React Native初探(二)- Mac中,很简陋但是能用的...

  • React初探(二)

    探索state和setState 关于state和setState有以下几点注意: 1.调用setState方法来...

  • React 初探

    原文地址 React 初探 [1.React 简单介绍](https://github.com/laispace/...

  • 探索React源码:Reconciler

    在探索React源码:初探React fiber[https://juejin.cn/post/703562827...

  • (React启蒙)初探React

    初探React 本文翻译自Cody Lindley的《React Enlightenmen》,已获得作者授权,这套...

  • React Native 相关

    React Native 初探 https://www.cnblogs.com/yexiaochai/p/6042...

  • umi框架的使用

    介绍umi umi官方文档 初探 对比以往使用的 create-react-app 搭建react项目,根据需要我...

  • 2018-05-23

    Lottie Android 初探 Lottie是一个支持Android、iOS、React Native,并由 ...

  • Lottie Android 初探

    Lottie Android 初探 Lottie是一个支持Android、iOS、React Native,并由 ...

  • React Native初探(二)- Mac

    在React Native初探(一)- Mac中,我们运行起来了Welcome App,简单的走了下iOS的App...

网友评论

      本文标题:React初探(二)

      本文链接:https://www.haomeiwen.com/subject/pkqnuqtx.html