Redux dispatch 导致组件本地状态重置
Posted
技术标签:
【中文标题】Redux dispatch 导致组件本地状态重置【英文标题】:Redux dispatch causing component local state to reset 【发布时间】:2018-08-06 01:14:14 【问题描述】:我将 Redux 与 React 一起使用。我正在使用this.state
(组件本地状态)来保存组件特定的变量。问题是每当我调度一个动作(获取动作)和存储更新(挂载)时,我的组件状态都会重置为初始状态。
-
这是我的组件的正确行为吗?在第二次挂载(重新渲染)时,组件的状态是否应该重置?
如果 (1) 为真,有没有办法在
this.state
从 Redux 存储接收新的 props 时保留某些变量值?我不希望将所有组件的本地状态存储在 Redux 中。
【问题讨论】:
不,通常不应该,但您的代码中可能有不良做法,如果没有发布任何代码,很难说 谢谢@DominicTobias,很高兴知道。知道这让我更深入地研究了我的代码,看起来它可能是 react-router-dom 导致原因:我以错误的方式实现了 react-router-dom Route 组件。我使用的是路由器组件功能
<Router component=()=><Login / >/>
然后会重新挂载子组件。
解决方案:使用Router组件中的render功能。例如
<Router render=()=><Login / >/>
【讨论】:
以上是关于Redux dispatch 导致组件本地状态重置的主要内容,如果未能解决你的问题,请参考以下文章
redux store dispatch 导致 React 中的 setState error()