当前位置: 首页> 教育> 锐评 > 【React】属性默认值和类型校验

【React】属性默认值和类型校验

时间:2025/7/12 15:09:33来源:https://blog.csdn.net/XiugongHao/article/details/139905671 浏览次数:0次

Component – React 中文文档

prop-types - npm (npmjs.com)

React.PropTypes已移入另一个包中。因此首先我们需要安装 prop-types 库。

npm install --save prop-types

主要用法:

  • 常规校验
  • 自定义校验
  • 数组(对象)校验
  • 插槽校验
  • 属性默认值
  • 节点、元素等其他校验
import ChildCom from "./components/ChildCom";function App() {return (<div className="App"><h1>我是 App</h1><ChildCom name={"jk-stu"} age={20} score={[11,22]} ><p>插入一些内容</p></ChildCom><ChildCom score={[11,22]} ><p>插入一些内容</p></ChildCom></div>);
}export default App;
import React from 'react';
import PropTypes from "prop-types";function ChildCom(props) {return (<div>这是子组件<div>姓名:{props.name} 年龄:{props.age}</div><div>{props.children}</div></div>);
}// props 类型校验
ChildCom.propTypes = {// name: PropTypes.string,age: PropTypes.number,/*** 自定义校验规则* @param props 组件的props* @param propName 校验的属性名* @param componentName 组件的名称* @returns {Error}*/name: function(props, propName, componentName) {if (!/-stu/.test(props[propName])) {return new Error('Invalid prop `' + propName + '` supplied to' +' `' + componentName + '`. Validation failed.');}},/*** 数组类型校验* @param propValue 校验的属性值* @param key 校验的属性值在数组中的位置* @param componentName 组件的名称* @param location 校验的属性名在组件中的位置* @param propFullName 校验的属性名在组件中的完整名称 比如 score[2]* @returns {Error}*/score: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) {if (typeof propValue[key] !== 'number') {return new Error('Invalid prop `' + propFullName + '` supplied to' +' `' + componentName + '`. Validation failed.');}}),// 插槽校验 这里必须插入一个elementchildren: PropTypes.element.isRequired
}
// props 设置默认值
// 但该用法即将移除
ChildCom.defaultProps = {name: '张三-stu',age: 18
}export default ChildCom;
关键字:【React】属性默认值和类型校验

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: