React + Redux State 实现 - 2 个关联到同一个集合,但 1 个是另一个的子集

React + Redux State implementation - 2 associations to same collection, but 1 is a subset of the other

为了了解更多关于构建非平凡的 React 和 Redux 系统的信息,我正在实现一个玩具票务系统。

问题是我不确定构建 redux 状态的最惯用方法。

背景:

所有用户都已通过身份验证。

一部分用户可以作为受让人链接到工单,任何用户都可以订阅工单以接收更新。

在后端,ActiveRecord 定义看起来像这样:

class Tickets < ActiveRecord::Base belongs_to :assignee, class_name: User has_many :subscribers, class_name: User end

工单的 ui 应显示受让人的 select 可能用户列表,以及类似于多 select 订阅者的列表。

问题:

我不确定是否:

在 Redux 中处理关系实体的标准方法是将它们存储在 "normalized" 结构中,然后使用实体 ID 数组来指示排序、过滤等。对于您的情况,您通常会在你的状态下设置 Tickets 和 User "tables",对应你的后端。

我已经为您提供了有关此主题的一些阅读材料。首先,Redux FAQ 有一个总结handling relational data in Redux

其次,Redux 文档有一个新的 Structuring Reducers 部分,其中提供了规范化 Redux 状态的示例以及供进一步阅读的资源。

第三,我强烈推荐一个名为 Redux-ORM 的库,它充当抽象层,用于管理商店内的规范化数据。

最后,实际上我几乎已经写完了一些博客文章,讨论了我为在实践中使用 Redux-ORM 而开发的概念和技术。我希望今晚在我的博客 (http://blog.isquaredsoftware.com) 上发布这些帖子。

编辑

更新:我已经在 Redux-ORM 上发布了这些帖子作为 a series on "Practical Redux" 的前几部分,讨论了我根据自己的 Redux 经验开发的技术。