Kev*_*off 194 reactjs react-proptypes
我有一个组件,它的大小接收道具.道具可以是字符串或数字ex:"LARGE"或17.
我可以让React.PropTypes知道这可以是propTypes验证中的一个或另一个吗?
如果我没有指定类型,我会收到警告: prop type `size` is invalid; it must be a function, usually from React.PropTypes.
MyComponent.propTypes = {
size: React.PropTypes
}
Run Code Online (Sandbox Code Playgroud)
小智 487
size: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number
]),
Run Code Online (Sandbox Code Playgroud)
了解更多:使用PropTypes进行Typechecking
cle*_*ong 17
出于文档目的,最好列出合法的字符串值:
size: PropTypes.oneOfType([
PropTypes.number,
PropTypes.oneOf([ 'SMALL', 'LARGE' ]),
]),
Run Code Online (Sandbox Code Playgroud)
小智 7
这可能对你有用:
height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
Run Code Online (Sandbox Code Playgroud)
这是使用多 proptype 和单 proptype 的专业示例。
import React, { Component } from 'react';
import { string, shape, array, oneOfType } from 'prop-types';
class MyComponent extends Component {
/**
* Render
*/
render() {
const { title, data } = this.props;
return (
<>
{title}
<br />
{data}
</>
);
}
}
/**
* Define component props
*/
MyComponent.propTypes = {
data: oneOfType([array, string, shape({})]),
title: string,
};
export default MyComponent;
Run Code Online (Sandbox Code Playgroud)