setState()

作者: 栗子daisy | 来源:发表于2019-07-04 21:55 被阅读0次

setState()参数

  1. 接受一个对象作为参数this.setState({count: this.state.count + 1});
  2. 接受一个函数作为参数this.setState((prevState, props) => ({ count: prevState.count + 1 }));
    区别
// 此处设置调用两次 setState()
  increment() {
    this.setState({
      count: this.state.count + 1
    });

    this.setState({
      count: this.state.count + 1
    });
  }

每次加1,采用的是对象合并的操作,等同于Object.assign() 。

increment() {
    // 采用传入函数的方式来更新 state
    this.setState((prevState, props) => ({
      count: prevState.count + 1
    }));
    this.setState((prevState, props) => ({
      count: prevState.count + 1
    }));
  }

与传入对象更新 state 的方式不同,传入函数来更新 state 的时候,React 会把我们更新 state 的函数加入到一个队列里面,然后,按照函数的顺序依次调用。同时,为每个函数传入 state 的前一个状态,这样,就能更合理的来更新我们的 state 了。

在 React 的源代码中,我们可以看到这样一句代码:

this.updater.enqueueSetState(this, partialState, callback, 'setState');

然后,enqueueSetState 函数中又会有这样的实现:

queue.push(partialState);
enqueueUpdate(internalInstance);

参考:
https://www.cnblogs.com/libin-1/p/6725774.html

相关文章

  • react拓展

    setState() setState更新状态的2种方式 对象式的setState 函数式的setState 对象...

  • setState()状态更新函数

    理解setState的关键 setState不会立刻改变React组件中state的值; setState通过引发...

  • 08react基础-react原理

    setState()更新数据 setState()更新数据是异步的 注意:使用该语法,后面的setState不要依...

  • 『react』setState()特性

    一.setState()更新数据 由于setState()更新数据是异步的,所以后面的setState()不要依赖...

  • setState相关

    - setState相关 setState是同步执行的,但是state不一定同步更新 多次执行setState,...

  • react 中的 API

    设置状态:setState setState(object nextState[,function callbac...

  • RN 优化之一

    大组件使用setState ,分离成很小的模块。各用各的setState 把setState 的范围使用到最少。

  • React初探(二)

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

  • setState补充

    RN中setState 设置状态 setState(object nextState[,functioncallb...

  • ReactNative:踩过的那些坑

    1.this.setState is not a function 问题分析 this.setState is n...

网友评论

    本文标题:setState()

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