改变状态时的虚拟dom和真正的dom问题

时间:2018-01-26 15:02:19

标签: reactjs virtual-dom

我在setState下面调用console.log但它显示我的空白数组甚至状态已被更改。

let text = reminderText;
let data = [...this.state.reminderText]
data.push(text);
this.setState({reminderText:data})
console.log(this.state.reminderText);

1 个答案:

答案 0 :(得分:1)

请注意,setState()asynchronous。这意味着,当执行控制台日志时,状态尚未更新。

如果要打印更新后的状态,请使用如下所示的回调函数。

this.setState(
    {reminderText:data},
    () => console.log(this.state.reminderText)
)

React将在异步状态更新完成后立即调用回调函数。