import React from 'react'; import PropTypes from 'prop-types'; function ChildCom(props) { return (
这是子组件 姓名:{props.name} 年龄:{props.age}
{props.children}
); } // 书写关于 props 类型的验证 ChildCom.propTypes = { /** * * @param {*} props 整体的 props 对象 {name:... , age :...} * @param {*} propName 当前验证的 props 属性 name * @param {*} componentName 组件名 */ name: function (props, propName, componentName) { if (!/-stu/.test(props[propName])) { // 进入此 if, 说明验证没有通过 return new Error( 'Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Validation failed.' ) } }, age: PropTypes.number, 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.' ); } }), children: PropTypes.element.isRequired } // 书写默认值 ChildCom.defaultProps = { name : 'jiexie-stu' } export default ChildCom;