React State 未使用 setState 正确分配
React State is not assigning properly with setState
我正在创建一个非常基本的待办事项应用程序。但是我遇到了将待办事项推入数组并将它们分配给状态的问题。
constructor(props){
super(props);
this.state = {
todo : '',
todos : []
};
};
todoValue(todo){
console.log(`Received the todo in the App : ${todo}`);
this.setState({todo});
console.log(this.state.todo);
}
在这里,当我单击按钮时,我在 todoValue
函数的 todo
参数中收到 todo
值。但它不会分配给事件的状态。它确实将值分配给下一个事件的状态。
例如,如果我在第一个事件中收到待办事项值 one
,在下一个事件中收到待办事项值two
,这就是我得到的。
我想将 todo 值分配给单击按钮时的状态(而不是下一个事件)
如何解决这个问题?
setState
is an async operation but it does allow a callback to be triggered 操作完成时。将您的代码更改为
this.setState({ todo }, () => console.log(this.state.todo));
你会看到你对状态所做的最新更改。
setState 是异步的,因此 React 可以批处理对 setState 的多次调用以提高性能。
如上所说,要么使用setState的回调函数,要么使用componentLifeCyclecomponentDidUpdate
我正在创建一个非常基本的待办事项应用程序。但是我遇到了将待办事项推入数组并将它们分配给状态的问题。
constructor(props){
super(props);
this.state = {
todo : '',
todos : []
};
};
todoValue(todo){
console.log(`Received the todo in the App : ${todo}`);
this.setState({todo});
console.log(this.state.todo);
}
在这里,当我单击按钮时,我在 todoValue
函数的 todo
参数中收到 todo
值。但它不会分配给事件的状态。它确实将值分配给下一个事件的状态。
例如,如果我在第一个事件中收到待办事项值 one
,在下一个事件中收到待办事项值two
,这就是我得到的。
我想将 todo 值分配给单击按钮时的状态(而不是下一个事件)
如何解决这个问题?
setState
is an async operation but it does allow a callback to be triggered 操作完成时。将您的代码更改为
this.setState({ todo }, () => console.log(this.state.todo));
你会看到你对状态所做的最新更改。
setState 是异步的,因此 React 可以批处理对 setState 的多次调用以提高性能。
如上所说,要么使用setState的回调函数,要么使用componentLifeCyclecomponentDidUpdate