react 父子传值

创建父组件 Demofather.js

第一种传值:在子元素标签上  title='待办事项' x={1}

字符串可以用" "引号传递

数字类型用{}大括号传递

子组件标签内部可以传递任何数据,react将自动生成props.children数据

import React, { Component } from 'react';
import{Demo,Demo2} from './index.js' //统一管理子元素的export

class Demofather extends Component {

  render() {
    return (
      <div className="App">
        <Demo title='待办事项' x={1}>
            今日事今日毕
        </Demo>
        <Demo2 btnText='add'/>
      </div>
    );
  }
}

export default Demofather

创建函数式子组件 Demo.js

函数式子组件通过参数props接收

import React from 'react'
//引入类型检查插件
import PropTypes from 'prop-types'
 
//函数式组件
export default function Demo(props){
    console.log(props) //{title: "待办事项", children: "我是其他传值"}
    return(
        <div>
            <p>我是父元素传来的:{props.title}</p>
            <p>我是父元素中标签内的传值:{props.children}</p>
            <p>我是父元素传来的数字:{props.x+props.x}</p>
        </div>
    )
}

Demo.propTypes={
    title:PropTypes.string,
    x:PropTypes.number.isRequired  //监测是否为必传
}

创建类子组件 Demo2.js

类子组件通过 {this.props.btnText} 接收

import React, { Component } from 'react';

//引入类型检查插件
import PropTypes from 'prop-types'

export default class Demo2 extends Component {
  //类型检验
  static propTypes ={
    btnText:PropTypes.string
  }
  //没传值的话默认值
  static defaultProps = {
    btnText:'添加'
  }
  render() {
    return (
      <div> 
        <input type="text"/>
        <button>{this.props.btnText}</button>
      </div>
    );
  }
}

其次还安装了数据类型检验的插件prop-types:

安装:npm install prop-types --save

需要检验的组件中引入:import  PropTypes  from  'prop-types'

函数式组件这样检验:

组件名+propTypes

后面加isRequired 监测必传项是否传入

Demo.propTypes={
    title:PropTypes.string,
    x:PropTypes.number.isRequired  //监测是否为必传
}

类组件中这样检验:

//类型检验
  static propTypes ={
    btnText:PropTypes.string
  }
  //没传值的话默认值
  static defaultProps = {
    btnText:'添加'
  }

如果没有按照检验规则传入,f12会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值