redux store dispatch导致React中的setState error()

时间:2016-12-07 05:32:23

标签: reactjs redux react-redux redux-thunk

我正在从组件渲染功能中调用thunk。如果在初始应用程序加载调用thunk加载的组件时,它工作正常。但是,如果我在不同的路由加载应用程序然后转换到呈现调用thunk的组件的路由,我会收到以下错误:

  

警告:setState(...):在现有状态期间无法更新   过渡(例如在render或其他组件内   构造函数)。渲染方法应该是道具的纯函数   州;构造函数的副作用是反模式,但可以移动   到componentWillMount

thunk改变了应用程序中任何组件都没有使用的redux存储状态,只是通过getState()在thunk中使用来做一些条件逻辑。如果我从thunk中删除调度actionCreator代码,则错误消失。

我缺少什么?

1 个答案:

答案 0 :(得分:2)

您只需要记住基本规则,您应该在组件的渲染功能中永远不会更改状态。相同的规则适用于组件状态以及redux存储状态。您在控制台上看到的警告是由您在渲染中调度的操作引起的。 重构您的代码,以便所有调度和状态更改都发生在其他生命周期方法中。