【发布时间】:2021-06-10 23:52:51
【问题描述】:
我有一个表单(父),其中包含一个输入字段(子),它从一个显示为模态(孙子)的参考表(Grand-grand-child)中获取其值,通过单击打开附加到输入字段的按钮。这是一个嵌套结构,大致如下:
我需要通过在引用表中选择一行并使用“SET VALUE”按钮确认我的选择来设置输入字段的值,这意味着我需要将数据从 Grand-grand-child 向上传递三个级别到父母通过孙子和孩子。
我的状态保存在父组件中。有没有一种简单的方法可以在不使用外部库的情况下实现这一目标?请提供使用 Hooks 的解决方案,因为我的所有组件都是功能组件。
这里是代码:https://codesandbox.io/s/festive-fast-jckfl
请参阅 CreateRate 组件,其中:
- CreateRate.jsx 是父级
- InputField.jsx 是孩子
- DataFetchModal.jsx 是孙子
- Airports.jsx 是孙子
【问题讨论】:
-
只需将状态设置器函数从父级一直传递到孙子级。在 GGC 内部,创建另一个状态来保存当前选定的行。将上面提到的父函数附加到“设置值”按钮,单击时,用当前选定的行调用它。如果你展示了一些代码,那么演示它是微不足道的。
-
我已经添加了我的代码。我不明白的是我是否需要通过中间的其他组件将回调函数调用从 GGC 传递给 P 以及每个组件中的函数调用是否应该相同或不同?如果我只向 Modal (GC) 上的按钮添加回调函数调用,该按钮如何知道 Table (GGC) 中的值已被选中?
-
您不会备份任何函数。您只需调用从父级向下级联的函数的引用。小菜一碟。您现在需要明确的是您的表格行是如何选择的?每行是否有一个复选框或一个选择按钮。我知道有那个“设置值”按钮,但是在单击确认按钮之前如何选择一行?
-
我正在使用具有 clickToSelect 属性的 BootstrapTable 库,该属性为我提供了我可以在选择时传递回来的行道具。那不是问题。我没有得到的是如何在从表格(GGC)选择行到模态按钮(GC)并从那里到表格(父)时获得这些道具。你能扩展一下吗?
-
如果不向您展示所需的更改,就很难解释它。您是否有机会将至少一个基本版本的应用程序放入 Codesandbox.io?只需使用一些硬编码的样本数据。我敢打赌,我可以在 5 分钟内完成它。我需要很长时间才能从头开始整合。
标签: reactjs react-hooks components