react组件传值的方式大全

组件传值的分类

1.按嵌套关系分:父子传值和兄弟传值(意思是指跨组件传值)

1.按传值方法分:props,ref,context,updater,redux

一.父子传值

1.向下传值--父组件向子组件传值

父组件通过props传递一个不是方法的数据,给子组件;

//父组件中
<Child data={[1,2,3]} />
//子组件中
console.log(this.props.data);

2.向上传值--子组件向父组件传值

父组件通过props向子组件传入一个方法,子组件在通过调用该方法,并将数据以参数的形式传给父组件,父组件可以在该方法中对传入的数据进行处理;

//父组件
import Child from './Child.js';
export default class Parent extend compenent{
  getData=(data)=>{
    console.log(data);
  }
  render(){
    return (
      <div>
        父组件
        <Child getData={this.getData}/>
      </div>
    )
  }
}

//子组件
export default class Child extend compenent{
  state={
    data:[1,2,3]
  }
  render(){
    const {data}=this.state;
    return (
      <div>
        子组件
        <button onClick={()=>{this.props.getData(data)}}><button>
      </div>
    )
  }
}