我有一个带有两个子组件的父组件。
<Parent>
<Child1 />
<Child2 />
</Parent>
Child1有一个文本区域,并且正在利用useState将文本区域的值设置为state;编辑器,setEditor。
Child2有一个按钮,当单击时,我想在Child1中获取编辑器的值。
实现此目标的最佳方法是什么?
我尝试创建一个新的上下文来包装我的Parent容器,但仍在努力如何真正获得编辑器值。
我的另一个想法是将useState推入父级并将道具向下传递到Child1中-但这意味着每次在Child1的文本区域中按下某个键时,父级组件都会重新渲染。
答案 0 :(得分:2)
此问题由lifting state up解决。
在React中,共享状态是通过将状态移到最接近的状态来完成的 需要它的组件的共同祖先。这就是所谓的 “提升状态”。
除非真正担心,否则不必担心父组件的重新渲染。
答案 1 :(得分:0)
您必须将状态从child1提升到父级,然后您可以将其作为道具传递给您拥有的所有孩子。希望你能理解