我正在为我的项目使用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的示例。真正好的解决方案可能是您退后一步思考“单击按钮时,应该发生什么明显的变化?”而不是“应该调用什么方法?”。