Javascript 在Reactjs中,组件之间交互的最佳方式是什么?
我试图从一个子组件截取用户活动,然后更新它的一个同级组件的状态。 例如 我的解决方案(我觉得很奇怪)是从RootApp将回调传递给Child1。当用户在Child1上单击onClick时,将调用回调。然后,RootApp中的回调更新为Child2定义的道具Child2将重新渲染Javascript 在Reactjs中,组件之间交互的最佳方式是什么?,javascript,reactjs,Javascript,Reactjs,我试图从一个子组件截取用户活动,然后更新它的一个同级组件的状态。 例如 我的解决方案(我觉得很奇怪)是从RootApp将回调传递给Child1。当用户在Child1上单击onClick时,将调用回调。然后,RootApp中的回调更新为Child2定义的道具Child2将重新渲染 我这样做对吗?感谢trekforever的确认。回调是传递状态的方法 这就是我所做的(如问题所述): 从RootApp将回调传递给Child1。当用户单击Child1时,将调用回调。然后,RootApp中的回调更新为Ch
我这样做对吗?感谢trekforever的确认。回调是传递状态的方法 这就是我所做的(如问题所述):
从RootApp将回调传递给Child1。当用户单击Child1时,将调用回调。然后,RootApp中的回调更新为Child2定义的道具。Child2被重新呈现。回调是一种方法,但是当您需要在根目录和子目录之间引入组件,或者当您需要重构应用程序并重新构建UI时,回调可能会变得非常麻烦。您可以查看哪些组件使用单个不变状态数据结构来解耦。因此,在child的onClick中,您只需更新状态,依赖于该状态部分的所有其他组件将自动重新呈现。有关更多详细信息,请参阅简介和API文档
当然,对于许多有效的情况,您仍然需要回调,但其中许多被省略。是的,父组件更新子组件的标准方法是将回调传递给子视图。因此,在您的情况下,
Child1
需要告诉RootApp
在Child1
中发生某些交互时更改其状态。将该状态从RootApp
传递到Child2
,Child2
将在该状态的道具发生很大变化时重新播放。很高兴看到我在正确的轨道上。非常感谢!当然,如果我想在现有组件之间粘贴一个新组件,它会变得非常混乱!!
-RootApp
--Child1 (has user interaction e.g. onClick)
--Child2 (needs data from Child1 to update state)
-RootApp
--Child1 (has user interaction e.g. onClick)
--Child2 (needs data from Child1 to update state)