【发布时间】:2017-04-29 17:13:08
【问题描述】:
这个问题很难用语言表达。在 React 中,有没有办法让一个深度(距父级深 2 层)嵌套的子组件调用与其具有兄弟关系的函数? (兄弟姐妹距离父节点深 1 级,但与嵌套较深的子节点缺乏自上而下的关系)
该函数是为了改变兄弟组件的状态,所以它需要作为兄弟组件类的方法调用
我知道我可以将一个函数作为道具传递给一个孩子,并让它在父母的类上被调用,但是这会发生在兄弟姐妹身上吗?
如果这有意义,请告诉我,如果没有,我可以拼凑一个简单的例子来说明我的意思,我要粘贴的代码太多了。
【问题讨论】:
-
很难理解你的具体情况,但通常 React 提倡单向数据流。数据只以一种方式流动,从父母到孩子。有什么方法可以将相关状态从同级移到父级,然后将函数从父级传递到另一个子级?
-
是的,这是我试图避免做的事情,因为它会变得混乱,但这是我能够想出的唯一解决方案......我不认为有一种方法可以完成我在这里尝试的其他方法:(
-
是的,协同定位状态是存在替代状态管理库的重要原因之一。在组件层次结构的多个级别中传递所有不同的状态位和状态更新函数可能会有点麻烦。您很容易遇到一个地方,您必须通过甚至不关心它们的组件传递道具,以便他们的孩子可以访问。到那时,值得研究一下 Redux 或潜在的 MobX,imo
标签: javascript reactjs components