列表和项目与关系数据存储之间的关系(使用 react-redux)
Relationship between list and item with relational data store (using react-redux)
我使用 React with Redux 作为我的商店。我还使用 react-redux 库来集成两者。我的商店包含两组数据:
- 任务 { id, name, assigneeId }
- 用户 { id, name }
我有一个 TaskListComponent,它(使用 react-redux)connect
-s 到我的商店使用:
@connect(state => {
tasks: state.tasks,
users: state.users
})
我需要两者,因为列表有一个过滤器允许搜索我的任务名称或用户名 - 我的组件需要是 'user aware'。
此组件列出了另一个名为 TaskItemComponent 的组件,它显示任务名称和指定用户的名称。
我正在努力决定解决任务的分配用户的最佳方法。
React 指南告诉我,Item 组件应该将 Task 作为 prop,并在 render 函数中解析 User 本身。然而,这需要组件是存储感知的,并且使用 react-redux 库,它似乎没有被设计为允许组件访问存储而不被 connect
-ed 到它。
或者我可以解析列表中的用户并将其与任务一起传递给项目组件,例如<TaskItemComponent task={task} assignee={resolveTaskAssignee(task)} />
。这有利于保留我的项目 'dumb',并且意味着我不需要让它监听商店更改(甚至不需要知道商店)。
如有任何建议,我们将不胜感激。
选项 #2 本身并没有错。你必须在某个地方进行数据操作。它始终是在 smart
组件中执行这些操作的正确位置。
就个人而言,我更喜欢商店中更好的数据模型。但是,你得到了你得到的。
两种方法都可以。我将从外部传递道具开始,一旦它变得乏味,让 Task
组件接收 task
作为道具 但 读取它的 user
通过使用 connect
.
另见 。
我使用 React with Redux 作为我的商店。我还使用 react-redux 库来集成两者。我的商店包含两组数据:
- 任务 { id, name, assigneeId }
- 用户 { id, name }
我有一个 TaskListComponent,它(使用 react-redux)connect
-s 到我的商店使用:
@connect(state => {
tasks: state.tasks,
users: state.users
})
我需要两者,因为列表有一个过滤器允许搜索我的任务名称或用户名 - 我的组件需要是 'user aware'。
此组件列出了另一个名为 TaskItemComponent 的组件,它显示任务名称和指定用户的名称。
我正在努力决定解决任务的分配用户的最佳方法。
React 指南告诉我,Item 组件应该将 Task 作为 prop,并在 render 函数中解析 User 本身。然而,这需要组件是存储感知的,并且使用 react-redux 库,它似乎没有被设计为允许组件访问存储而不被
connect
-ed 到它。或者我可以解析列表中的用户并将其与任务一起传递给项目组件,例如
<TaskItemComponent task={task} assignee={resolveTaskAssignee(task)} />
。这有利于保留我的项目 'dumb',并且意味着我不需要让它监听商店更改(甚至不需要知道商店)。
如有任何建议,我们将不胜感激。
选项 #2 本身并没有错。你必须在某个地方进行数据操作。它始终是在 smart
组件中执行这些操作的正确位置。
就个人而言,我更喜欢商店中更好的数据模型。但是,你得到了你得到的。
两种方法都可以。我将从外部传递道具开始,一旦它变得乏味,让 Task
组件接收 task
作为道具 但 读取它的 user
通过使用 connect
.
另见 。