html下拉框设置默认值_props验证与设置默认值

本文介绍了在React中如何为无状态组件和类组件设置默认props值,以及如何进行props验证。通过defaultProps属性设置初始值,并通过prop-types库进行数据类型检查。在某些情况下,未压缩的prop-types库会导致控制台显示错误信息。
摘要由CSDN通过智能技术生成
46bad79994e0814869ce93dc3caf1fd1.gif1无状态组件props验证与设置默认值

无状态组件props设置默认值

当我们没有给props设置要传的默认值时,不会报错,只是会出现一片空白,影响用户体验,如下例里,只是在接收的时候直接用的props接收,但在调用组件时并没有传初始值过去,所以页面上呈现一片空白。

47b42424f27cad8114bbbd46a9ff2eea.png

无状态组件设置默认值,也就是要传的初始值,需要使用defaultProps属性,具体的设置方法就是当前组件名.defaultProps,当前react版本16,如果react版本在15之前那写法有些不同,看下例:

<html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>无状态组件里的props验证与默认值title>    <script src="node_modules/react/umd/react.development.js">script>    <script src="node_modules/react-dom/umd/react-dom.development.js">script>    <script src="node_modules/babel-standalone/babel.min.js">script>head><body>    <div id="demoReact">div>    <script type="text/babel">        function Com(props) {
                //无状态组件设置默认值需要使用defaultProps属性            return (                <div>我是一个无状态组件,外部传递的数据是:{props.name}div>            )        }        Com.defaultProps = {
                name: "我是props中name的默认值"        }        //当前react版本是16,如果react版本是15x,那么这里设置默认值写法有些不同,用||的方式完成        // function Com(props) {
            //     props.name=props.name || "我是默认值"        //     return (        //         
我是一个无状态组件,外部传递的数据是:{props.name}
// ) // } ReactDOM.render(<Com />, document.getElementById("demoReact"))script>body>html>

运行结果是

fdc6217aab953c259deaa21e05919d40.png

如果说进行数据的传递,传递给name一个值,那么就会发现name的默认初始值就会被传递的值替换,如下例:

<html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>无状态组件里的props验证与默认值title>    <script src="node_modules/react/umd/react.development.js">script>    <script src="node_modules/react-dom/umd/react-dom.dev
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值