【发布时间】:2020-05-14 07:51:44
【问题描述】:
所以我是新来的。所以我读了很多关于通过回调从孩子传回给父母的文章。
但我的问题是,例如,这是一个场景:
我有一个名为 Dashboard.js 的组件,它确实是一个父组件,其中有一个我想要更改的名为 height 的状态。现在有另一个名为 SideBar.js 的组件,我将这个状态作为道具传递,反过来,它将值传递给名为 SideBarContent.js 的组件。现在 SideBarContent.js 有一个名为 heightSideBar 的状态,它由这个道具填充,尽管这是不允许的。现在在 SideBarContent.js 中,我有一个按钮,它应该将这个状态 heightSideBar 增加 5 倍。现在这个状态值需要首先发送到 SideBar.js,然后最后发送到 Dashboard.js 以便我可以从那里更新我的 Dashboard.js 状态高度,可以相应地使用。
当存在父子函数链时,请帮助我解决此传递问题。
【问题讨论】:
-
欢迎来到 SO。没有看到一些代码很难理解流程,但唯一的是将父级中的
height乘以一个数字,您可以将回调一直向下传递,在设置因子后您可以调用它用这个因素回调并乘以高度。您可以根据需要更改逻辑,但重要的是数据将从顶部流向按钮,您将使用传递给子组件的回调更新父组件的状态。 -
您可以将回调传递到尽可能多的地方,但这是一个称为道具钻孔的过程,并且使用反应上下文系统具有最佳解决方案。 TL;DR 您可以为组件下方的 reactDOM 树提供值/回调,并且只有对它们感兴趣的组件才能使用它们,从而跳过道具钻探。
-
非常感谢。 ^__^ 先生下次提供代码。
标签: javascript reactjs parent