我正在为我的项目使用React,并且使用它还很新。以下是我面临的问题。

我具有以下组件结构:

<Parent>
  <ChildA></ChildA>
  <ChildB></ChildB>
</Parent>


我希望具有以下功能:当在子A中单击一个按钮时,我希望在子B中执行一个方法。

您能告诉我如何在ReactJS中实现吗?

提前致谢!

最佳答案

有两个直接的答案。


使用事件发射器。在ChildA的点击处理程序中,您将发出“无论如何”事件。 ChildB已经为“ whatever”事件注册了一个侦听器,因此将调用该事件的处理程序。
使用裁判。您将一个函数作为道具<ChildA onWhatever={fn}>传递给ChildA,并将引用放在ChildB <ChildB ref="b">上,并且在传递给ChildA的函数中执行this.refs.b.method()


但是,这是XY problem的示例。真正好的解决方案可能是您退后一步思考“单击按钮时,应该发生什么明显的变化?”而不是“应该调用什么方法?”。

10-07 21:30