账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react为什么生命周期中的批量setState时isBatchingUpdates为false?
    31
    0

    描述

    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>
        );
      }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    更多回答