Redux 按顺序为单个减速器分配多个动作';t反映连接组件的状态变化
当为一个减速器分派多个不同的操作时,只有最后一个操作触发组件更新。然后解释可能更好 关于提供的示例的一些注释:Redux 按顺序为单个减速器分配多个动作';t反映连接组件的状态变化,redux,react-redux,Redux,React Redux,当为一个减速器分派多个不同的操作时,只有最后一个操作触发组件更新。然后解释可能更好 关于提供的示例的一些注释: App组件反映其道具的更新历史redirectPath。当它为null时,则no redirect字符串将添加到历史记录中 有一个reducer,它根据操作只返回一个普通的字符串或null 通过按下按钮Do redirect,我希望这两个操作(SET\u redirect和CLEAR\u redirect)都能为AppContainer组件提供已更改的状态。但只有最新的(CLEAR\u
App
组件反映其道具的更新历史redirectPath
。当它为null
时,则no redirect
字符串将添加到历史记录中字符串
或null
Do redirect
,我希望这两个操作(SET\u redirect
和CLEAR\u redirect
)都能为AppContainer
组件提供已更改的状态。但只有最新的(CLEAR\u REDIRECT
)会触发具有null
值的呈现方法SET\u REDIRECT
和CLEAR\u REDIRECT
操作提供)都应该在分派操作时触发组件更新,而不使用setTimeout
我还尝试将CLEAR\u REDIRECT
的调度从中间件移动到SET\u REDIRECT
之后,但结果相同
我能达到预期的行为吗
最初,我将问题发布到redux repo,因为我认为这是redux中的一个问题,但@jimbolla向我解释说,这主要是由react设计的
这里是对redux团队成员的原始问题和评论的参考。永远不要依赖于在
render()中执行状态更新。
。应在render()
中执行的唯一代码是构造视图所需的代码
您可以使用componentWillReceiveProps
跟踪组件何时接收到新属性
您应该侦听相应的属性,并在收到时执行重定向。然后,您应该侦听指示重定向成功的属性,然后可以根据需要调度一个操作以清除重定向状态,这将触发另一个组件更新。
您可以使用componentWillReceiveProps
,这是一个非常正确的观点。我也来了。