从另一个孩子访问孩子的状态?

时间:2020-04-28 18:56:58

标签: reactjs

我有一个带有两个子组件的父组件。

<Parent>
    <Child1 />
    <Child2 />
</Parent>

Child1有一个文本区域,并且正在利用useState将文本区域的值设置为state;编辑器,setEditor。

Child2有一个按钮,当单击时,我想在Child1中获取编辑器的值。

实现此目标的最佳方法是什么?

我尝试创建一个新的上下文来包装我的Parent容器,但仍在努力如何真正获得编辑器值。

我的另一个想法是将useState推入父级并将道具向下传递到Child1中-但这意味着每次在Child1的文本区域中按下某个键时,父级组件都会重新渲染。

2 个答案:

答案 0 :(得分:2)

此问题由lifting state up解决。

在React中,共享状态是通过将状态移到最接近的状态来完成的 需要它的组件的共同祖先。这就是所谓的 “提升状态”。

除非真正担心,否则不必担心父组件的重新渲染。

答案 1 :(得分:0)

您必须将状态从child1提升到父级,然后您可以将其作为道具传递给您拥有的所有孩子。希望你能理解