【问题标题】:ReactJS: SetState doesn't seem to be firingReactJS:SetState 似乎没有触发
【发布时间】:2021-03-16 07:05:20
【问题描述】:

我的app.js 文件中有这段代码:

componentDidMount() {
     var newData = {...data};
     console.log("New Data: ", newData);

     this.setState({data: newData}), () => {
        console.log("New state: ", this.state.data);
     });
}

在控制台日志中我有:

新数据:{name: {…},添加:{…},选择:Array(1)}

但是,我没有来自 console.log("New state: ", this.state.data); 的输出

如果我从 '.then()' 中取出控制台日志,我会得到以下控制台输出:

新状态:[]

我是新来的反应如此详细的答案将不胜感激。谢谢。

【问题讨论】:

  • 可能是因为“this”在普通函数中未定义为 myFunc(){}。并且需要写槽箭头函数componentDidMount = () => {}
  • @AlexeyNikonov 我认为情况并非如此。我可以console.log(this.state.data) 并显示当前状态,这意味着this 不会有问题
  • 这样试试。 this.setState({data: newData}, () => {console.log("新状态:", this.state,data});

标签: javascript reactjs setstate


【解决方案1】:

这是因为你没有通过正确的回调方式。应该是这样的:

this.setState({data: newData}, () => {
        console.log("New state: ", this.state.data);
 });

【讨论】:

    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2016-11-09
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多