首页 文章

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

提问于
浏览
1

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

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

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

我错过了什么?

1 回答

  • 2

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

相关问题