假设我们具有以下商店结构:
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
有关的组件应该不知道存在这样的层次结构。