首页 > 解决方案 > Chain redux 商店更新

问题描述

我想在减速器处理第一个动作后调度一个动作。

这是我的用例。我的组件允许用户选择一个笔记列表(这个列表存储在 redux 中)。根据一些用户操作,可以从此列表中选择一个随机便笺并将其保存在商店中。

在此处输入图像描述

在屏幕截图中,您可以看到按钮。“全选”和“取消全选”作用于可能的注释列表。“开始”从列表中选择一个音符。

我遇到的问题涉及“重置按钮”。它应该链接“全选”和“开始”,我不知道该怎么做。我尝试了一个天真的:

const reset = function () {
  dispatch(selectAll());
  dispatch(pickANote());
}

在这个例子中,我正面临着我认为的数据竞赛。第二个动作从笔记更新列表中挑选笔记。

挖掘互联网,我发现只有基于 API 调用和 redux thunk 的动作链接案例。我遇到的问题是我不知道在处理操作时如何触发某些东西(这在 API 调用中很明显)

所以,有3个解决方案:

欢迎任何帮助。

标签: reactjsreduxreact-reduxredux-thunk

解决方案


好吧,我找到了我的答案。

毫不奇怪,我在想反模式。

redux style guide中,有两点引导我找到解决方案。

  1. 强烈建议调度一个由多个 reducer 处理的操作。
  2. 强烈建议将逻辑放在减速器中。

结果是我应该分派“原始数据”,然后计算价值缩减器。遵循这条路径,我不依赖存储中已有的值来进行下一次更新,因此,我不会面临任何数据竞争。


推荐阅读