Javascript React Typescript:can';t设置状态
我有一个包含字符串的数组。我正试着用另一根弦把它连接起来。当我Javascript React Typescript:can';t设置状态,javascript,reactjs,typescript,state,Javascript,Reactjs,Typescript,State,我有一个包含字符串的数组。我正试着用另一根弦把它连接起来。当我console.log('Dates:'+mergedActions)将两个字符串一起返回。但是,当Iconsole.log('Dates:'+this.state.MergedAllActions)为空时。我尝试在控制台日志中添加超时,但仍然没有 知道为什么mergedActions中没有设置包含信息的mergedActions let currentAction = 'Form has been submitted'; let m
console.log('Dates:'+mergedActions)
将两个字符串一起返回。但是,当Iconsole.log('Dates:'+this.state.MergedAllActions)
为空时。我尝试在控制台日志中添加超时,但仍然没有
知道为什么mergedActions
中没有设置包含信息的mergedActions
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是异步的,但它支持回调作为第二个参数。 改为
this.setState({ MergedAllActions: mergedActions }, console.log(this.state.MergedAllActions));
,如文件所述:
setState()将组件状态的更改排入队列[…]将setState()视为更新组件的请求,而不是即时命令。[…]
setState()并不总是立即更新组件。[…]这使得调用setState()后立即读取This.state成为一个潜在的陷阱。
相反,使用
componentdiddupdate
或setState回调(setState(updater,callback)
),这两种回调都保证在应用更新后触发。
(我的重点。),如文档所述:
setState()将组件状态的更改排入队列[…]将setState()视为更新组件的请求,而不是即时命令。[…]
setState()并不总是立即更新组件。[…]这使得调用setState()后立即读取This.state成为一个潜在的陷阱。
相反,使用
componentdiddupdate
或setState回调(setState(updater,callback)
),这两种回调都保证在应用更新后触发。
(强调我的。)嗨,谢谢你的回复,我还是个新手。因此,我在一个
submit
函数中执行此操作。在提交时,我正在进行此计算,然后将新的设置状态推送到我的数组中
有什么想法吗?正如上面的文档片段所解释的,在调用setState()
后,对您的状态的更改不会立即可用,因为setState()
是异步的。下一次重新呈现组件时,它将反映在状态中。您好,谢谢您的回复,我还是个新手。因此,我在一个submit
函数中执行此操作。在提交时,我正在进行此计算,然后将新的设置状态推送到我的数组中
有什么想法吗?正如上面的文档片段所解释的,在调用setState()
后,对您的状态的更改不会立即可用,因为setState()
是异步的。下次重新渲染组件时,它将反映在状态中。