3 回答
TA贡献2019条经验 获得超9个赞
setState是异步的,因此您不会立即看到状态值的更改。您可以向它传递一个回调函数,其中更新的状态值可用:
this.setState({
formField
}, () => console.log(this.state.formField, 'single form field'));
另一个问题是您直接使用 修改您的状态Object.assign,setState而是使用功能形式:
this.setState(state => ({
...state,
formField: {
formname: state.formname,
...state.newform
}
}));
TA贡献1784条经验 获得超8个赞
setState 异步工作,这就是为什么您看不到更新的状态,您可以使用回调作为
this.setState((prevState) => ({
formsCollection: [...prevState.formsCollection, formField]
}), () => {
console.log(this.state.formsCollection, 'forms collection are: ')
});
希望能帮助到你
TA贡献1777条经验 获得超3个赞
试试这个
this.setState(prevState => {
prevState.formsCollection = [...prevState.formsCollection, formField];
return prevState;
});
添加回答
举报