{this.props.aaa}
        )
      }
}
export default App;
复制代码
(我在这里提醒一句,文章所有代码都运行在搭好的React环境中,千万别拉到本地直接扔到一个html文件里,一运行一看运行不起来,这就好比在一个没有空气的星球,试图靠空气生存一样,空气都没有,你说能活下去嘛)
运行结果:
 
2.现在基本传参可以了,那能不能传点别的过去,当然可以,要是只能传参数岂不是很鸡肋,下面我们来试试能不能传一个函数过去,当然是可以的
步骤:1.在父组件里定义一个函数
   2.调用子组件时将函数传过去
   3.子组件通过this.props.函数名()来调用函数并且执行
 
复制代码
import React, { Component,Fragment} from 'react';
//React的props传参
// 父组件
class App extends Component {
  render() {
    return (
      {this.props.aaa}{this.props.bbb()}
        )
      }
}
export default App;
复制代码
运行结果:
 
3.学过Vue的同学可能会知道Vue里面是可以对props传过来的值进行验证的,比如他的类型,是否为空,默认值等等,那在我们的React中有没有对props进行验证呢,答案是肯定的
  只不过React的props验证没有Vue的验证用起来方便,下面我们来看一看React中props具体是怎么验证的
  1.安装props-type
    yarn add prop-types 
  2.引入prop-types
  3.愉快的使用两个属性来进行验证  
      1.propTypes:用来验证类型和是否必传
      2.defaultProps:用来设置未传参时的默认值
   下面我们直接将代码发上来好吧
    
复制代码
import React, { Component,Fragment} from 'react';
import PropTypes from 'prop-types'
//React的props传参
// 父组件
class App extends Component {
  render() {
    return (
      {this.props.aaa}
          
{this.props.bbb}
{this.props.ccc}
{this.props.ddd}
          
        )
    }
}
//对传过来的props进行验证
//验证类型和是否必传
Child.propTypes = {
    // 传入aaa的类型必须为number(不传不会报错,仅仅是限制已传入的参数类型)
    aaa:PropTypes.number,
    //必须传入bbb
    bbb:PropTypes.isRequired,
    //必须传入ccc且类型必须为
    ccc:PropTypes.string.isRequired
}
//设置默认值
Child.defaultProps = {
    ddd:"默认值"
}
export default App;
复制代码
运行结果:
      
     我先来解释解释这两个错误  1:aaa类型传入为string,期望为number
                 2.bbb需要被传入
    我们可以看到结果都显示了,但是报错了,所以我们得到一个结论,验证不通过会报错,但是实际上并不影响我们页面的正常显示
上面我们进行是讲props的验证放到了类的定义外面,放到外面感觉有点分离了,那我们能不能拿到里面来呢,当然可以了,下面我们来看看另一种写法
    利用static静态属性将验证写在类的里面
    下面直接上代码
    
复制代码
import React, { Component,Fragment} from 'react';
import PropTypes from 'prop-types'
//React的props传参
// 父组件
class App extends Component {
  render() {
    return (
      {this.props.bbb}
{this.props.ccc}
{this.props.ddd}
{this.props.aaa}
          
{this.props.bbb}
{this.props.ccc}
{this.props.ddd}
          
        )
    }
    static propTypes = {
          // 传入aaa的类型必须为number(不传不会报错,仅仅是限制已传入的参数类型)
        aaa:PropTypes.number,
         //必须传入bbb
        bbb:PropTypes.string.isRequired,
        //必须传入ccc且类型必须为
        ccc:PropTypes.string.isRequired
    }
    static defaultProps = {
      ddd:"默认值"
    }
}
export default App;
复制代码
 
 
好了,暂时关于React中的props我就写这些,大家有需要的可以参考参考,如有错误,请以官方文档为准,溜了溜了,用膳去https://www.cnblogs.com/suihang/p/9978859.html
                    {this.props.bbb}
{this.props.ccc}
{this.props.ddd}
