Skip to main content

React 父组件调用子组件的方法

父组件

父组件给子组件传入一个 onRef 方法过去。接受子组件反馈的参数e, 把接受到的值赋予给,event 这时就可以调用子组件的一个方法叫 sonClick() 方法。

import React, { Component } from 'react';
import ChildClick from './ChildClick';

let event = '';

class ParentClick extends Component{

onRef = (e) => {
event = e;
}

handleClick = () => {
// 调用子组件方法
event.sonClick();
}

render() {
return (
<div>
<ChildClick onRef={this.onRef} click={this.handleClick} />
</div>
)
}
}

export default ParentClick;

子组件

子组件接受到父组件传过来的方法,把this反馈了出去。此时的this就是子组件的实例。

import React, { Component } from 'react';

class ChildClick extends Component {
constructor(props){
super(props)
this.props.onRef(this);
}

sonClick = () =>{
console.log('我被parent调用了!');
}
render() {
return (
<div>
<h2>我是子组件<h2>
</div>
)
}
}

export default ChildClick;

父组件给子组件传入一个方法,子组件把自己的实例反馈出来,就是自身的this。

父组件接受到子组件反馈的信息,保存在了 event 里面。

此时父组件的另外一个方法 handleClick 就可以触发子组件的 sonClick() 方法。