【发布时间】:2021-03-08 13:22:05
【问题描述】:
我有两个模型,其中模型 A 引用模型 B 中的项目。当我从模型 B 中删除项目时,反应重新渲染,然后我可以更新模型 A 以删除引用的项目。
例子:
我有一个提要。提要由不同类型的项目组成。每种类型的项目都存储在其各自的模型中。 提要订单存储为项目 ID 数组,引用其不同子存储中的项目。
我在这里做了一个最小的失败示例。点击按钮三次后出现问题
https://codesandbox.io/s/deleting-referenced-items-kmw1e
关键是
else console.error(">>>> feed order contains deleted item", id);
Feed 订单可能包含已删除的项目是有问题的,因为这可能意味着存在导致错误引用的编程错误。在这种情况下,这不是编程错误,只是第二个商店还没有更新。
有没有办法可以批量处理createAndDeleteTodo,在整个 thunk 和所有 subthunk 完成之前不评估所有侦听器?
在上面的示例中,只需一个主操作来更新提要订单和项目就足够简单了,但是如果有不止一种类型的项目,因为每种项目类型都存在于其各自的模型中,这会让人觉得很麻烦。
【问题讨论】:
-
我认为派生状态/计算变量可能是处理这种边缘情况的更好方法,但它对更新数组的控制较少。
标签: redux react-redux easy-peasy