具有关系数据存储的列表和项目之间的关系(使用 react-redux)

Posted

技术标签:

【中文标题】具有关系数据存储的列表和项目之间的关系(使用 react-redux)【英文标题】:Relationship between list and item with relational data store (using react-redux) 【发布时间】:2015-12-02 18:36:03 【问题描述】:

我使用 React 和 Redux 作为我的商店。我也在使用 react-redux 库来集成两者。我的商店包含两组数据:

任务 id、name、assigneeId 用户 id, name

我有一个 TaskListComponent(使用 react-redux)connect-s 到我的商店,使用:

@connect(state => 
    tasks: state.tasks,
    users: state.users
)

我需要两者,因为列表有一个过滤器允许搜索我的任务名称或用户名 - 我的组件需要“用户感知”。

此组件列出了另一个名为 TaskItemComponent 的组件,它显示任务名称和分配用户的名称。

我正在努力确定解决任务分配用户的最佳方法。

React 指南告诉我,Item 组件应该将 Task 作为道具,并在渲染函数中解析 User 本身。但是,这要求组件具有存储感知能力,并且使用 react-redux 库,它似乎没有被设计为允许组件在没有 connect-ed 的情况下访问存储。

或者我可以解析列表中的用户并将其与任务一起传递给项目组件,例如<TaskItemComponent task=task assignee=resolveTaskAssignee(task) />。这样做的好处是让我的项目保持“哑”,并且意味着我不需要让它监听商店的变化(甚至不需要知道商店)。

任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

选项#2 本身并没有错。您必须在某处进行数据操作。它始终是在 smart 组件中执行这些操作的正确位置。

就我个人而言,我更喜欢商店中有更好的数据模型。但是,你得到了你所得到的。

【讨论】:

【参考方案2】:

这两种方法都很好。我将从外部传递道具开始,一旦它变得乏味,让Task 组件接收task 作为道具但是使用connect 读取它的user。 p>

另见https://***.com/a/25701169/458193。

【讨论】:

以上是关于具有关系数据存储的列表和项目之间的关系(使用 react-redux)的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB中海量关系的最佳数据模型

如何使用 ant 构建多个具有依赖关系的项目

预加载具有多对多关系的核心数据的最佳实践

具有存储库模式的实体框架,将数据插入到具有多对多关系的表中

核心数据。加入 2 个具有多对多关系的表?

MongoDBMongoDB的安装教程