首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当不同的组件依赖同一个实体列表时,如何正确地管理规范化数据的删除?

当不同的组件依赖同一个实体列表时,如何正确地管理规范化数据的删除?
EN

Stack Overflow用户
提问于 2016-10-06 10:27:57
回答 1查看 298关注 0票数 1

让我们说你有:

  • 您的应用程序中所有可用书籍的分页列表。您可以在BooksList组件中包含这一点。
  • TopBooksList组件中应用程序中顶级书籍的列表。
  • 从rest获取的所有这些数据都被规范化并保存在Redux存储中,因此您的存储看起来如下所示: { entities: { books: { 1: { ... }, 2: { ... }, 3: { ... }, 4: { ... }, 5: { ... } } }, topBooksList: [5, 2, 1], booksList: [1, 2, 3, 4, 5] }
  • 用户单击“5”组件中图书上的“删除”按钮删除图书BooksList

每次发生删除时,都会从实体列表和该组件的结果列表中删除相应的实体。

0. --什么是处理页面上引用刚刚删除的实体的其他组件的最佳方法?

1.是否尝试通过在处理此类数据的每个减法器中为delete操作添加开关语句来协调组件?如果是这样的话,如果您希望始终保持与受该删除影响的组件保持同步(如示例中的TopBooksList组件),则会如何?通过删除图书5,您最终得到一个长度为2topBooksList,您需要它的长度为3吗?您是否将其标记为脏数据并重新获取数据?当页面上相关组件的数量增加时,这种策略不是很乏味吗?

2.有不同的,更简单的策略吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-06 13:20:33

你应该在每一个处理这本书的减速器中加入switch案例。在那里,你做的是必要的,以保持一切有序(保持参考完整性,确保顶部的列表是3长,等等)。

但是,如果这涉及从后端获取数据,那么这应该放在deleteBook的异步操作创建者中。

原因是减速器应该永远是纯的,这意味着它们不会有副作用。

在您的例子中,我可能有一个更长的topBooksList,因此无需每次删除一本书。您不需要全部显示它们。

当页面上相关组件的数量增加时,这种策略不是很乏味吗?

是的,的确很乏味。尝试Redux-OrmRedux模式 (免责声明:由我编写)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39893591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档