繁体   English   中英

反应 Typescript:无法设置 State

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM