我有一个句柄函数,它在另一个组件中调用。这将传递一个名为data的值,我希望将其更新到 state
.
//basic code
initialState = {
wordCount:"Some Value"
text: "Some value"
}
class Home extends Component{
state = initialState;
handler(data){
console.log('Arrived',data)
this.setState({wordCount:data,text:GetText(data,this.state)});
this.validation();
}
validation(){
console.log(this.state.wordCount)
}
render(){
return (
<div><Component handlerFunc={this.handler.bind(this)}</div>
)
}
打印 data
在我的处理函数中,我确实以字符串形式接收正确的信息。我使用setstate来替换 wordCount
的初始值 data
. 我也这样做 text
. gettext返回一个字符串。
但在运行验证时,我的状态完全相同。这怎么可能?
1条答案
按热度按时间kgsdhlau1#
注意:react中的setstate是异步的。
这意味着不能保证状态在下一个语句之前已经改变。要避免这种情况,您可以做的是setstate接受回调,它将在setstate完成时调用。