问题分析
对selectedRows
进行setState
之后,将其打印出来却是undefined
。
因为setState是异步更新,当你打印state
的时候,或许上面setState
函数还未执行,自然打印出来的东西就是undefined
。
可通过回调
解决此问题。
this.setState({
selectedRows: record,
drawerVisible: true,
MatchId,
drawertitle: '小赛详细信息',
}, console.log(this.state.selectedRows)
)
修改为:
this.setState({
selectedRows: record,
drawerVisible: true,
MatchId,
drawertitle: '小赛详细信息',
}, () => {
console.log(this.state.selectedRows)
})
问题总结
setState()
函数接受两个参数
,一个是一个对象,就是设置的状态,还有一个是一个回调函数
,是在设置状态成功之后执行的,所以我们可以通过回掉拿到最新的state
值。
updateData = (newData) => {
this.setState(
{ data: newData },
() => {
//这里打印的是最新的state值
console.log(this.state.data);
}
);
}