Redux-分发应由减速器层次结构中的一个减速器执行的操作

时间:2019-01-30 10:39:36

标签: reactjs redux

假设我们具有以下商店结构:

store: {
  containers: {
    1000: { /*some data*/ },
    1001: { /*some data*/ }
  },
  items: {
    2000: { /*some data*/ },
    2001: { /*some data*/ }
  },
  mappings: {
    1000: [1001],
    1001: [2000, 2001]
  }
}

想象一下,容器和项目共享一些数据-我们称之为pieceOfData。并假设在任何给定时间只有一个项目处于活动状态。

从商店中检索/修改的pieceOfData由层次结构中最接近的“叶子”确定。

因此,当项2000处于活动状态时,首先通过在项2000中进行检查,然后在容器1001中进行检查,然后再通过容器1000进行检查,即可找到检索到的pieceOfData。对象,返回null。

使用选择器可以做到这一点。棘手的部分发生在我们尝试分派更改该pieceOfData的操作时。每个容器和项目精简器共享一个pieceOfData精简器,用于处理相同的操作。因此,在正常情况下,调度将导致每个pieceOfData发生变化。

那我如何才能确保正确的pieceOfData减速器来处理该动作?

一种解决方案是将一个ID与调度调用一起发送,这意味着当我检索pieceOfData时,它也必须返回此ID。但是理想情况下,我想避免这种情况,因为与更新pieceOfData有关的组件应该不知道存在这样的层次结构。

0 个答案:

没有答案