【发布时间】:2017-09-05 04:56:46
【问题描述】:
在此处检查代码 jsfiddle
我希望从子组件更新单个项目的值属性。但是由于道具是不可变的并且不会触发重新渲染,因此代码不起作用。我知道完成这项工作的一种方法是将函数从 GrandParent 传递给 Parent,然后传递给 Child,并使用它来更新 GrandpParent 的状态。这将触发子组件中的重新渲染。但这也会导致 GrandParent、Parent 和 Child 组件的其他兄弟姐妹的重新渲染。
// comment
有没有更好的方法来做到这一点,这对我来说似乎不是最佳选择。
【问题讨论】:
-
如果你使用 redux 最好的方法是使用 mapStateToProps 和 mapDispatchToProps
-
+1 到之前的评论 - 为什么不使用 redux 呢?如果它不适合 - 使用上下文。如果它不适合 - 你自己描述了一切。只需使用键和
shouldComponentUpdate' 管理重新渲染 -
正如@donquixote 所提到的,您应该为此使用一些架构,这将很容易处理所有这些类型的场景,维护存储中的数据,并在任何级别轻松访问它。
-
谢谢。似乎 Redux 是要走的路。将探索。
标签: javascript reactjs