Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Redux分派导致组件本地状态重置_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript Redux分派导致组件本地状态重置

Javascript Redux分派导致组件本地状态重置,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在使用Redux和React。我正在使用this.state(组件本地状态)保存特定于组件的变量。问题是,每当我分派操作(获取操作)和存储更新(装载)时,我的组件状态都会重置为初始状态 这是我的组件的正确行为吗?组件第二次装载(重新渲染)时是否应重置其状态 如果(1)为真,当它从Redux store收到新道具时,是否有办法在this.state中保留某些变量值?我不希望在Redux中存储所有组件的本地状态 原因:我以错误的方式实现了react router dom Route组件。我正在使

我正在使用Redux和React。我正在使用
this.state
(组件本地状态)保存特定于组件的变量。问题是,每当我分派操作(获取操作)和存储更新(装载)时,我的组件状态都会重置为初始状态

  • 这是我的组件的正确行为吗?组件第二次装载(重新渲染)时是否应重置其状态
  • 如果(1)为真,当它从Redux store收到新道具时,是否有办法在
    this.state
    中保留某些变量值?我不希望在Redux中存储所有组件的本地状态

  • 原因:我以错误的方式实现了react router dom Route组件。我正在使用路由器组件功能

    <Router component={()=><Login / >}/>
    
    }/>
    
    然后将重新装入子组件

    解决方案:使用路由器组件中的渲染功能

    <Router render={()=><Login / >}/>
    
    }/>
    
    不,通常不应该这样做,但您的代码中可能有不好的做法,很难说没有任何代码帖子谢谢您@DominicTobias,很高兴知道。Knowin这使我更深入地研究了我的代码,它看起来可能是导致}/>组件中的组件装载到props update上的原因。不知道为什么。。。故障排除仍在继续。非常感谢!您使用哪种生命周期方法初始化您的状态?它应该在构造函数中,我在构造函数中定义它。类LoginForm\u UsrPwd\u Step1扩展了React.Component{constructor(props){super(props)this.state={usernameInput:'',passwordInput:''}}}Eureka!!我找到了原因。我以错误的方式实现了React路由器dom路由组件。我使用了路由器组件函数}/>然后将重新装入其子组件。相反,我应该在路由器组件中使用render函数。使用构造函数来实例化组件状态现在就像一个符咒。我会在几乎空荡荡的办公室里多跑几圈胜利之旅(有点尴尬),然后嘎吱嘎吱地离开:)谢谢你们的支持!真的很感激。