【发布时间】:2016-07-26 01:36:09
【问题描述】:
给定这样的组件层次结构:
<TodoList>
<Todo>
<TodoHeader/>
<TodoBody>
<TodoDetails>
<TodoStatus />
<TodoDetails>
<TodoDescription />
<TodoBody>
<Todo>
</TodoList>
...还有这样的商店:
{
todos: [
{ id: 1, status: "INCOMPLETE", header: "title one", description: "do a something" },
{ id: 2, status: "INCOMPLETE", header: "title two", description: "something else" },
{ id: 3, status: "COMPLETE", header: "title three", description: "one more thing" },
]
}
嵌套的TodoStatus组件有没有好办法连接到store,而不必向下传递id
组件层次结构作为道具?例如,Todo 可以将currentTodoId = 1 设置为上下文,这将是可用的
对于儿童减速机,但有替代品吗?也许是父组件将存储减少到的一种方法
然后子组件将能够看到的单个 todo...?
此时,您可能想问“为什么”?好吧,考虑在TodoList(对待办事项数组进行操作)和嵌套的TodoStatus(只想对单个待办事项进行操作)之间可能存在多个级别的严格表示组件。必须通过像这样的层次结构向下传递todoId 非常痛苦:
<TodoList>
<Todo todoId={1}>
<SomeAnimation todoId={1}>
<SomeLayout todoId={1}>
<SomeOtherAnimation todoId={1}>
<SomeDebugContainer todoId={1}>
<TodoHeader todoId={1}>
<TodoBody todoId={1}>
<TodoDetails todoId={1}>
<TodoStatus todoId={1}> // yay!
在这一点上,我想象这正是 React 上下文的优势所在,因此可能没有特定于 Redux 的模式,但我想错了!
【问题讨论】:
标签: javascript redux react-redux