React组件的防呆机制(propTypes)
2020-04-26 19:04
856 查看
Prop验证
随着应用不断变大,为了保证组件被正确使用变得越来越重要。为此我们引入propsTypes。React.PropTypes提供很多验证器(valodator)来验证传入的数据的有效性。当向props传入无效数据是,JavaScript控制台会抛出错误。为了性能考虑,只在开发环境验证propsTypes.
GroupSelect.defaultProps = {
};
GroupSelect.propTypes = {
name: PropTypes.string,
children: PropTypes.node,
style: PropTypes.objectOf(PropTypes.any),
className: PropTypes.string,
};
React组件属性类型(propTypes)校验
React.createClass({ propTypes: { // 可以声明 prop 为指定的 JS 基本类型。默认 // 情况下,这些 prop 都是可传可不传的。 optionalArray: React.PropTypes.array, optionalBool: React.PropTypes.bool, optionalFunc: React.PropTypes.func, optionalNumber: React.PropTypes.number, optionalObject: React.PropTypes.object, optionalString: React.PropTypes.string, // 所有可以被渲染的对象:数字, // 字符串,DOM 元素或包含这些类型的数组。 optionalNode: React.PropTypes.node, // React 元素 optionalElement: React.PropTypes.element, // 用 JS 的 instanceof 操作符声明 prop 为类的实例。 optionalMessage: React.PropTypes.instanceOf(Message), // 用 enum 来限制 prop 只接受指定的值。 optionalEnum: React.PropTypes.oneOf(['News', 'Photos']), // 指定的多个对象类型中的一个 optionalUnion: React.PropTypes.oneOfType([ React.PropTypes.string, React.PropTypes.number, React.PropTypes.instanceOf(Message) ]), // 指定类型组成的数组 optionalArrayOf: React.PropTypes.arrayOf(React.PropTypes.number), // 指定类型的属性构成的对象 optionalObjectOf: React.PropTypes.objectOf(React.PropTypes.number), // 特定形状参数的对象 optionalObjectWithShape: React.PropTypes.shape({ color: React.PropTypes.string, fontSize: React.PropTypes.number }), // 以后任意类型加上 `isRequired` 来使 prop 不可空。 requiredFunc: React.PropTypes.func.isRequired, // 不可空的任意类型 requiredAny: React.PropTypes.any.isRequired, // 自定义验证器。如果验证失败需要返回一个 Error 对象。不要直接 // 使用 `console.warn` 或抛异常,因为这样 `oneOfType` 会失效。 customProp: function(props, propName, componentName) { if (!/matchme/.test(props[propName])) { return new Error('Validation failed!'); } } }, /* ... */
转载于:https://www.cnblogs.com/wy1935/p/7098710.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- React组件属性props部类(propTypes)校验
- React组件属性类--propTypes
- 【react】利用prop-types第三方库对组件的props中的变量进行类型检测
- React组件属性类型(propTypes)
- React 组件创建 生命周期 PropTypes
- React PropTypes 定义组件的属性类型和默认属性
- ReactNative组件属性类(propTypes)校验
- 【react】利用prop-types第三方库对组件的props中的变量进行类型检测
- React组件的属性PropTypes
- React组件属性类型(propTypes)
- React组件属性部类(propTypes)校验
- React组件属性类--propTypes
- React组件属性类型(propTypes)
- react-native 组件默认属性(defaultProps) 及 属性类型验证(PropTypes)
- reactJS -- 7 可复用组件(Prop 验证)
- react开发报错Use the prop-types package from npm instead.
- 解决:react native使用TabNavigator报错 PropTypes has been moved to a separate package...
- Javascript.Reactjs-5-prop-validation-and-proptypes
- react使用 PropTypes 和 getDefaultProps()
- React Native报错unddefined is not an object(evaluating ‘_reactnative.propTypes’)解决办法