react 兄弟组件如何调用对方的方法示例
最近有一个场景是Child2组件点击让Child1组件里面的state的值发生改变,Child1是一个公用组件,把里面的state值改为props传递,修改内容太多,容易出错,就想找其他的方法来解决兄弟组件调用方法问题,下面看代码:
Child1是第一个子组件
classChild1extendsReact.Component{ constructor(props){ super(props); this.state={ text:'Child1' }; } onChange=()=>{ this.setState({ text:'Child1onChange' }) } componentDidMount(){ this.props.onRef&&this.props.onRef(this) } render(){ return({this.state.text}); } }
是第二个子组件,和Child1是兄弟组件;
classChild2extendsReact.Component{ constructor(props){ super(props); this.state={ }; } render(){ return(Child2
home父组件
classHomeextendsReact.Component{ constructor(props){ super(props); this.state={ }; } onRef=(ref)=>{ this.child1=ref; } render(){ return({ this.child1.onChange&&this.child1.onChange() } }/>
分析
- 第一步:在Child1组件的componentDidMount生命周期里面加上this.props.onRef(this),把Child1都传递给父组件,
- 第二步父组件里面
this.onRef方法为onRef=(ref)=>{this.child1=ref;}; - 第三步Child2组件触发一个事件的时候,就可以直接这样调用this.child1.onChange(),Child1组件里面就会直接调用onChange函数,修改text为Child1onChange;
到这里就可以实现调用兄弟组件,其实还是用父组件做了中间传递。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。