[英]React Typescript: can't set State
我有一个包含字符串的数组。 我正在尝试使用该字符串并将其与另一个字符串连接。 当我console.log('Dates: ' + mergedActions)
我将两个字符串一起取回。 但是,当我console.log('Dates: ' + this.state.MergedAllActions)
它是空的。 我尝试在控制台日志中添加超时,但仍然没有。
知道为什么mergedActions
即使它包含信息也没有在MergedAllActions
中设置?
let currentAction = 'Form has been submitted';
let mergedActions = this.state.Product[0].AllActions + ',' + currentAction;
this.setState({ MergedAllActions: mergedActions });
console.log('Dates: ' + mergedActions);
console.log('Dates: ' + this.state.MergedAllActions);
下面的控制台:
Dates: first Step,First Approver accepted
Dates:
setState 是异步的,但它支持回调作为第二个参数。 改成
this.setState({ MergedAllActions: mergedActions }, console.log(this.state.MergedAllActions));
setState
是 asynchronous ,正如文档所解释的:
setState() 对组件 state [...]
将 setState() 视为更新组件的请求而不是立即命令。 [...]
setState() 并不总是立即更新组件。 [...]这使得在调用 setState() 之后立即阅读 this.state 成为一个潜在的陷阱。
相反,请使用componentDidUpdate
或 setState 回调(setState(updater, callback)
),它们都保证在应用更新后触发。
(强调我的。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.