react为什么生命周期中的批量setState时isBatchingUpdates为false?

描述

reactsetState是异步的,这样可以批量更新,不至于每次setState都进行新的render
但是在调试代码时发现,在componentDidMount中多次进行setState,结果也是批量的,但是isBatchingUpdates却为false
而在事件中触发的setStateisBatchingUpdates却是为true
这是为什么呢,为什么生命周期中的没使用批量更新标志,它是如何实现的呢?

测试代码

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

onClickBtn = () => {
     this.setState({ count: this.state.count + 1 });
     console.log(this.state.count);
     this.setState({ count: this.state.count + 1 });
     console.log(this.state.count);
}

render() {
    console.log("render", this.state.count);
    return (
      <h1>
        test batchupdates
        <button onClick={this.onClickBtn}>click me</button>
      </h1>
    );
  }
阅读 3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题