一.首先我们先来看父组件向子组件传值
1.1 我们要明白父组件 --> 子组件 是通过props这个属性来传值的
我们来看父组件的代码
1 import React from 'react'; 2 import Son1 from './Son1'; 3 class Father extends React.Component{ 4 constructor(){ 5 super(); 6 7 } 8 render(){ 9 return( 10 <React.Fragment> 11 {/* 我们在这里引入子组件 并声明一个属性str 给他传一个hello */} 12 <Son1 str='hello'></Son1> 13 </React.Fragment> 14 ) 15 } 16 17 } 18 export default Father;
接着看子组件
1 import React from 'react'; 2 class Son1 extends React.Component{ 3 constructor(){ 4 super() 5 } 6 7 render(){ 8 return( 9 <React.Fragment> 10 {/* 子组件通过props 这个属性来接受父组件传过来的str */} 11 {this.props.str} 12 </React.Fragment> 13 ) 14 } 15 16 } 17 export default Son1;
页面上就可以得到 hello这个值
二. 子组件向父组件传值
在这里我们分为4个步骤
2.1、在父组件中声明一个函数,用于接收子组件的传值
2.2、通过组件属性的方法,把函数传递给子组件
先看父组件的代码
1 import React from 'react'; 2 import Son1 from './Son1'; 3 class Father extends React.Component{ 4 constructor(){ 5 super(); 6 7 } 8 // 1、在这里中声明一个函数,用于接收子组件的传值 9 message(msg){ 10 // 通过形参接受到子组件的值并打印到控制台 11 console.log(msg) 12 } 13 render(){ 14 return( 15 <React.Fragment> 16 {/* 在这里声明一个msg属性,通过组件属性的方法,把函数传递给子组件 */} 17 <Son1 msg={this.message}></Son1> 18 </React.Fragment> 19 ) 20 } 21 22 } 23 export default Father;
2.3、在子组件中通过props属性调用父组件的函数,并通过参数传值
1 import React from 'react'; 2 class Son1 extends React.Component{ 3 constructor(){ 4 super() 5 } 6 render(){ 7 return( 8 <React.Fragment> 9 {/* 在子组件中通过props属性调用父组件的函数,并通过参数传值 */} 10 {this.props.msg('hello Word')} 11 </React.Fragment> 12 ) 13 } 14 15 } 16 export default Son1;
2.4、在父组件中的函数通过形参接收子组件的传值
这样就可以看到控制台打印的效果