react父组件向子组件传方法
时间: 2023-11-23 12:06:13 浏览: 85
React 组件间的通信示例
在React中,父组件向子组件传递方法的方式是通过将方法作为props传递给子组件。子组件可以通过调用这个方法并传递参数来向父组件传递消息。具体步骤如下:
1. 在父组件中定义一个方法,用于接收子组件传递过来的值,并将值赋给父组件的state。
2. 在父组件的render方法中,将这个方法作为props传递给子组件。
3. 在子组件中,通过props获取父组件传递过来的方法,并在需要的时候调用这个方法并传递参数。
举个例子,假设父组件为Parent,子组件为Son,父组件需要向子组件传递一个方法getDatas,用于接收子组件传递过来的值。具体代码如下:
父组件Parent.js:
```
import React from 'react';
import Son from './Son';
class Parent extends React.Component {
constructor() {
super();
this.state = {
mess: '' // 初始化mess属性
}
}
// 用于接收子组件的传值方法,参数为子组件传递过来的值
getDatas(msg) {
// 把子组件传递过来的值赋给this.state中的属性
this.setState({
mess: msg
});
}
render() {
return (
<React.Fragment>
{/* 渲染子组件,设置子组件访问的方法,getdata属性名为子组件中调用的父组件方法名 */}
<Son getdata={this.getDatas.bind(this)}></Son>
<div>展示数据:{this.state.mess}</div>
</React.Fragment>
);
}
}
export default Parent;
```
子组件Son.js:
```
import React from 'react';
class Son extends React.Component {
constructor() {
super();
this.state = {
msg: 'Hello World!'
}
}
handleClick() {
// 调用父组件传递过来的方法,并传递参数
this.props.getdata(this.state.msg);
}
render() {
return (
<div>
<button onClick={this.handleClick.bind(this)}>向父组件传递消息</button>
</div>
);
}
}
export default Son;
```
在这个例子中,父组件定义了一个方法getDatas,用于接收子组件传递过来的值,并将值赋给父组件的state。在父组件的render方法中,将这个方法作为props传递给子组件。子组件通过props获取父组件传递过来的方法,并在需要的时候调用这个方法并传递参数。
阅读全文