zoukankan      html  css  js  c++  java
  • react子组件对父组件传递过来的值进行验证

    PropTypes是react中子组件对父组件传递来的值进行的验证,在项目没有集成ts/flow的情况下可以使用,且react中已原生支持

    导入

    import PropTypes from 'prop-types'  //由于是export default导出,可以重命名
    

    使用

    1. 类型验证
    //声明一个子组件
    const Son = props => (<div>这是父组件接收来的数据:{props.name}</div>)
    
    //使用propTypes对子组件接收的数据进行验证,propTypes须小写
    
    Son.propTypes = { 
      name: PropTypes.string  // 这意味着,传入的必须是string类型
    }
    
    

    如果父组件传入的类型不是PropTypes规定的类型,将会直接在控制台报错:

    以上图为例,假设父组件传递了一个Boolean...

    1. 是否必传
    //声明一个子组件
    const Son = props => (<div>这是父组件接收来的数据:{props.name}</div>)
    
    //使用propTypes对子组件接收的数据进行验证,propTypes须小写
    
    Son.propTypes = { 
      name: PropTypes.string.isRequired  // 这意味着,传入的必须是string类型
    }
    

    如果没有传入子组件规定的必传项会报以下错:

    1. 规定默认值
    //声明一个子组件
    const Son = props => (<div>这是父组件接收来的数据:{props.name}</div>)
    
    //使用propTypes对子组件接收的数据进行验证,propTypes须小写
    
    Son.defaultProps= { 
      name: '致爱丽丝'  // 这意味着,传入的必须是string类型
    }
    
    

    在同时具备默认值与必传的情况下,默认值优先级大于必传。
    以上。

    作者:致爱丽丝
    本文版权归作者和博客园共有,欢迎转载,但必须在文章页面给出原文链接并标名原文作者,否则保留追究法律责任的权利。
  • 相关阅读:
    Redis线程模型理解
    策略模式
    Spring Cloud 5大组件介绍
    单例模式
    hotspot虚拟机的调试
    编译虚拟机jvm——openjdk的编译
    mybatis的搭建和注入spring的方式
    springMvc+hibernate的web application的构建
    关于本博客
    本博客已停更
  • 原文地址:https://www.cnblogs.com/hjk1124/p/14998597.html
Copyright © 2011-2022 走看看