【发布时间】:2018-04-07 19:45:33
【问题描述】:
我有以下几点:
addTodo() {
const text = prompt("TODO text please!")
this.setState({todos:[...this.state.todos,
{id:id++,
text: text,
checked:false}]})
console.log(this.state)
}
控制台显示了一个空数组,这很有意义,因为 setState 是异步的。我将函数更改为使用回调:
addTodo() {
const text = prompt("TODO text please!")
this.setState(function(prevState){
return {todos: [...prevState.todos,
{id: id++,
text: text,
checked: false} ]}
})
console.log(this.state)
}
console.log 仍然显示一个空数组。回调的使用不会更新setState吗?
【问题讨论】:
-
您可以查看此post 以清除您对状态转换的担忧。