1

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

  • 任务 { id,名称,assigneeId }
  • 用户 { id, name }

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

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

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

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

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

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

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

任何意见,将不胜感激。

4

2 回答 2

1

两种方法都很好。我将从外部传递道具开始,一旦它变得乏味,让Task组件task作为道具接收,user通过使用connect.

另请参阅https://stackoverflow.com/a/25701169/458193

于 2015-10-18T13:32:41.477 回答
0

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

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

于 2015-09-07T10:46:08.517 回答