繁体   English   中英

ReactJs setState 回调不起作用

[英]ReactJs setState callback not working

我对 setState 回调有一个奇怪的行为,希望有人可以提供帮助。 回调只是没有被触发。

这是我所做的:

 this.setState( (prevState, props) => { return { first: obj, questions: [] } }, this.changeStateCb );

出于某种原因,从未调用 changeStateCb 函数。 当我将其更改为时同样的问题:

 this.setState( (prevState, props) => { return { first: obj, questions: [] } }, () => console.log(this.state) );

我刚刚从 v15.x 更新到 16.2.0

你有演示吗? 我只是提出了一个简单的工作示例,它似乎在 React 16.2.0下运行得很好。 请注意,应谨慎使用可选回调。 正如文档中提到的,一旦setState完成并重新渲染组件,它将被执行。 因此,在this.changeStateCb执行逻辑的更好位置是在componentDidUpdate内部。

我刚刚遇到了同样的问题。 回调中的简单console.log('test')甚至不会运行。 事实证明,我必须删除构建目录中的 /dist 文件夹。 我正在使用 Type Script 和 webpack,并从 .net 核心模板升级。

有同样的问题。 不调用回调。 我将它追踪到 React 最小代码,即使它是从内部 React 代码传入的,enqueueSetState 的函数也不接受回调......所以代码解释了为什么不调用它。 但这曾经在 React 15.x 中工作得很好 - 发生了什么......我正在尝试 React 16.8.4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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