美文网首页
React 父子组件通讯-属性校验

React 父子组件通讯-属性校验

作者: coderhzc | 来源:发表于2021-09-30 11:32 被阅读0次
import React, { Component } from 'react'

import PropTypes from "prop-types"

class ClassCpn extends Component {
  render() {
    let { age, sex, height, name } = this.props
    console.log(this.props)
    return (
      <div>
        <h2>{age + "" + sex + "" + height}</h2>
        <ul>
          {
            name.map(item => {
              return <li key={item}>{item}</li>
            })
          }
        </ul>
      </div>
    )
  }
}

// 1.属性校验
ClassCpn.propTypes = {
  name: PropTypes.array.isRequired,
  age: PropTypes.number,
  sex: PropTypes.string,
  height: PropTypes.number
}

// 2.给组件写默认值 (当父组件没有传值过来的话,你就可以使用默认的数据)
ClassCpn.defaultProps = {
  name: ['haha', 'hehe', 'heihei'],
  age: 18,
  sex: "男",
  height: 1.88
}




// 3. 类组件还可以这样写属性校验
class ChildCpm extends Component {
  //  前面一定要加:static 校验可以放在组件内部
  static propTypes = {
    name: PropTypes.array.isRequired,
    age: PropTypes.number,
    sex: PropTypes.string,
    height: PropTypes.number
  }

  //   前面一定要加:static 默认值也是可以放到组件中的
  static defaultProps = {
    name: ['haha', 'hehe', 'heihei'],
    age: 18,
    sex: "男",
    height: 1.88
  }
  render() {
    console.log(this.props);  // 这个获取的是 组件中的默认值
    let { age, sex, height, name } = this.props
    return (
      <div>
        <h2>{age + "" + sex + "" + height}</h2>
        <ul>
          {
            name.map(item => {
              return <li key={item}>{item}</li>
            })
          }
        </ul>
      </div>
    )
  }
}




export default class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      age: 18,
      sex: "男",
      height: 1.88,
      name: ["huzhenchu", "chguchuhu", "guxiaohu", "zhenchuhu"]
    }
  }
  render() {
    const { age, sex, height, name } = this.state
    return (
      <div>
        <h2>1.类组件传值</h2>
        <ClassCpn age={age} sex={sex} height={height} name={name} />

        <h2>2.当父组件没有传值过来的话,你就可以使用默认的数据</h2>
        <ClassCpn />

        <h3>3.类组件另外一种校验</h3>
        <ChildCpm />
      </div>
    )
  }
}

实际截图:

image.png

相关文章

  • React 父子组件通讯-属性校验

    实际截图:

  • vue组件通信

    1.组建通讯---父子组件通讯 父子通信通过props属性进行传值 父组件 子组件 1.组建通讯---子父组件通讯...

  • react父子通讯

    父子通讯父传数据给子,子传数据给父 react组件class 组件名 extends React.Componen...

  • react 父子组件传值(兄弟传值)

    react中父子组件传值 父向子: 父组件通过自定义属性向子组件传值,子组件通过this.props.属性名接收子...

  • react里面父子组件通讯

    一、父组件 二、子组件 三、父组件通过props向子组件传递参数,子组件通过调用父组件的回调函数callback并...

  • 同级之间传值

    一.父子组件 1.父组件到子组件通讯父组件到子组件的通讯主要为:子组件接受使用父组件的数据,这里的数据包括属性和方...

  • React中的Refs & DOM

    在React数据流中,父子组件唯一的交流方式是通过props属性;如果要修改子组件,通过修改父组件的属性,更新达到...

  • 【react】父子组件之间通讯props

    实现父子组件双向数据流整体的思路是: 1,父组件可以向子组件传递props,props中带有初始化子组件的数据,还...

  • vue组件如何通信?有几种方式?

    在vue中组件通讯可以分为父子组件通讯和非父子组件通信。父组件通过props的方式向子组件传递数据,而子组件可以通...

  • 组件之间通信及为什么使用Redux

    组件之间状态通信 父子组件通信 React使用单项数据流,意味着父组件将自身状态作为属性传递给子组件。(props...

网友评论

      本文标题:React 父子组件通讯-属性校验

      本文链接:https://www.haomeiwen.com/subject/yukenltx.html

      热点阅读