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

时间:2015-09-07 08:56:03

标签: reactjs redux

我使用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作为prop,并在render函数中解析User本身。但是,这需要组件具有存储感知功能,并且使用react-redux库,它似乎不会被设计为允许组件访问存储而不会connect编辑它。

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

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

两种方法都很好。我首先从外面传递道具,一旦它变得单调乏味,让task组件接收user作为道具,但通过使用来阅读connect pm2 start app.js --watch

另见https://stackoverflow.com/a/25701169/458193

答案 1 :(得分:0)

选项#2没有任何内在错误。你必须在某处做数据操作。它始终是在smart组件中执行这些操作的正确位置。

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