2

我们正在使用react-connected-router,并且在我们的反应页面组件中,我们从服务器获取状态,并调度操作以更新 Redux 状态(我们只是使用钩子,没有 thunk 或 saga 中间件)。

但是,当我们使用redux devtools进行时间旅行调试时,当我们回退到相应的状态时,组件会再次派发动作......

我不想在进行时间旅行调试时分派新动作。

老实说,除了在我的组件中渲染之外,我从不想做任何事情,我通常在事件处理程序(如 click)中进行异步获取,但这种方法不适用于 React Router。理想情况下,当用户更改浏览器历史记录时,应该触发一些事件,并且应该通过处理该事件来完成异步获取,而不是在呈现页面组件时,但我找不到有关如何执行此操作的文档。

我的一般问题是,如何编写与 devtools 时间旅行调试器完美配合的代码,以便在重放状态时不会调度新操作?

据我了解,像 Redux thunk 或 saga 这样的中间件也不能解决这个问题,除非 devtools 在进行时间旅行调试时会完全忽略调度的 Redux thunk。也许已经是这样了,我应该只使用这些中间件

4

1 回答 1

1

似乎 Redux 开发工具可以选择发送lock新操作!

这个博客中有解释

因此,指南似乎只是触发这些操作,并让开发人员手动锁定更改。

我对此不是 100% 满意,在组件渲染期间将动作作为副作用调度是错误的,但就这样吧。

于 2019-09-09T14:37:21.907 回答