给定像这样的组件层次结构:
<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
组件连接到商店而不必将id
组件层次结构作为道具传递下去?例如,Todo
可以设置currentTodoId = 1
为可用于减少儿童的上下文,但是有替代方案吗?也许是父组件将存储减少到一个子组件然后能够看到的单个待办事项的方式......?
在这一点上,你可能想问“为什么”?好吧,考虑到TodoList
(在todos数组上运行)和嵌套TodoStatus
(只想在一个todo上运行)之间可能存在几个级别的严格表示组件。必须通过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特定的模式,但我想错了!
SMILET
慕盖茨4494581
相关分类