我的编程空间,编程开发者的网络收藏夹
学习永远不晚

React中的Props类型校验和默认值详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

React中的Props类型校验和默认值详解

一、props规则校验

安装 prop-types 包

$ npm install prop-types

导入 propTypes 对象

import propTypes from 'prop-types';

组件名.propTypes = {} 设置组件 传参规则

Comp.propTypes = {
	param: propTypes.array  // Comp组件 的 param 参数必须是 数组类型
}

示例:

// props 类型校验规则
import React from 'react';
// 1. npm i prop-types
// 2. 导入 propTypes 对象
import PropTypes from "prop-types";
function Son({list}) {
    return (
        <div>
            {list.map(item => <p key={item}>{item}</p>)}
        </div>
    )
}
// 3. 组件名.propTypes = {} 给组件设置规则
Son.PropTypes={
    // 4. 各字段设置规则
    list: PropTypes.array // Son的list参数必须是 数组形式
}
class App extends React.Component {
    render() {
        return (
            <div>
                <Son list="我企鹅亲子装"/>
            </div>
        )
    }
}
export default App;

报错提示如下:

在这里插入图片描述

四种常见结构

  • 常用类型:arraynumberboolstringfuncobjectsymbol
  • React元素类型:element
  • 必填项:isRequired
  • 特定的结构对象:shape({})

核心代码:

// 1.类型
optionalFun: PropTypes.fun;
// 2.必填项
requiredFun: PropTypes.fun.isRequired;
// 3. // 可以指定一个对象由特定的类型值组成
optionalObjectWithShape: PropTypes.shape({
    color: PropTypes.string,
    fontSize: PropTypes.number
}),

二、props默认值

1.函数式默认值

1.1 函数参数默认值(新版推荐)

示例:

import React from "react";
// 1. 函数参数默认值
function Son1({defaultTime = 10}) {
    return (
        <div>The timer is : {defaultTime}</div>
    )
}
class App extends React.Component {
    render() {
        return (
            <div>
                <Son1 />
            </div>
        )
    }
}
export default App;

在这里插入图片描述

1.2 defaultProps 设置默认值

function Son2({defaultTime}) {
    return (
        <div>The second timer is: {defaultTime}</div>
    )
}
// 2. defaultProps 设置默认值
Son2.defaultProps = {
    defaultTime: 100
}
class App extends React.Component {
    render() {
        return (
            <div>
                <Son1 />
                <Son2 />
            </div>
        )
    }
}

在这里插入图片描述

2.类式默认值

2.1 defaultProps

class Son3 extends React.Component {
    render() {
        return (
            <div>The defaultTimer is : {this.props.defaultTime}</div>
        )
    }
}
// defaultProps 设置默认值
Son3.defaultProps = {
    defaultTime: 3333
}

2.2 类静态属性声明

class Son4 extends React.Component {
    static defaultProps ={
        defaultTime: 66666
    }
    render() {
        return (
            <div>The defaultTimer is : {this.props.defaultTime}</div>
        )
    }
}

完整示例

// props默认值
import { func } from "prop-types";
import React from "react";
// 1.1 函数参数默认值
function Son1({defaultTime = 10}) {
    return (
        <div>The timer is : {defaultTime}</div>
    )
}

function Son2({defaultTime}) {
    return (
        <div>The second timer is: {defaultTime}</div>
    )
}
// 1.2 defaultProps 设置默认值
Son2.defaultProps = {
    defaultTime: 100
}
class Son3 extends React.Component {
    render() {
        return (
            <div>The defaultTimer is : {this.props.defaultTime}</div>
        )
    }
}
// 2.1 函数 defaultProps 设置默认值
Son3.defaultProps = {
    defaultTime: 3333
}
// 2.2 静态属性声明
class Son4 extends React.Component {
    static defaultProps ={
        defaultTime: 66666
    }
    render() {
        return (
            <div>The defaultTimer is : {this.props.defaultTime}</div>
        )
    }
}
class App extends React.Component {
    render() {
        return (
            <div>
                <Son1 />
                <Son2 />
                <Son3 />
                <Son4 />
            </div>
        )
    }
}
export default App;

如图:

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

React中的Props类型校验和默认值详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

React中Props类型校验和默认值的示例分析

这篇文章主要为大家展示了“React中Props类型校验和默认值的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React中Props类型校验和默认值的示例分析”这篇文章吧。一、prop
2023-06-29

vue3中使用props和emits并指定其类型与默认值

props是Vue3中的一个重要概念,它允许我们将数据从父组件传递到子组件,下面这篇文章主要给大家介绍了关于vue3中使用props和emits并指定其类型与默认值的相关资料,需要的朋友可以参考下
2023-05-14

vue3中怎么使用props和emits并指定其类型与默认值

defineProps的使用defineProps在使用的时候无需引入,默认是全局方法。在js开发的vue3项目中使用constprops=defineProps({attr1:{type:String,//S必须大写default:"",},attr2:Boolean,attr3:{type:Number,required:true,},});js环境中使用与vue2的使用方法类似,只是选项式API换成了组合式API。定义props类型与默认值都与vue2类型,vue3中使
2023-05-19

详解Go语言各种常见类型的默认值和判空方法

本文主要介绍了详解Go语言各种常见类型的默认值和判空方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-16

编程热搜

目录