Reactjs-proptypes使用类型之一进行检查
我希望允许组件具有两种可能的proptype(string或undefined)之一。我正在使用PropTypes.oneOfType来执行此操作Reactjs-proptypes使用类型之一进行检查,reactjs,react-proptypes,Reactjs,React Proptypes,我希望允许组件具有两种可能的proptype(string或undefined)之一。我正在使用PropTypes.oneOfType来执行此操作 import React from 'react'; import PropTypes from 'prop-types'; Product.propTypes = { productTag: PropTypes.oneOfType([ PropTypes.string, undefined ]), }; Prod
import React from 'react';
import PropTypes from 'prop-types';
Product.propTypes = {
productTag: PropTypes.oneOfType([
PropTypes.string, undefined
]),
};
Product.defaultProps = {
productTag: undefined
};
这是正确的方法吗?
从“React”导入React;
从“道具类型”导入道具类型;
Product.propTypes={
productTag:PropTypes.oneOfType([
PropTypes.oneOf([undefined,PropTypes.string])
]),
};
或
Product.propTypes={
productTag:PropTypes.oneOfType([
PropTypes.string,
PropTypes.oneOf([未定义])
]),
};
Product.defaultProps={
productTag:未定义
};代码>如果属性未定义,那么这实际上意味着它不存在,也就是说,您试图表达的是productTag
属性是可选的,但当存在时,它需要是一个字符串。是这样吗
如前所述,“默认情况下,这些都是可选的。”。因此,在这种情况下,您可以简单地使用:
Product.propTypes={
productTag:PropTypes.string
};
由于您没有将其标记为isRequired
,因此,如果我想在productTag未定义且具有值的情况下呈现元素,如this.props.productTag&&{this.props.productTag}这个组件将作为子组件在几个组件中使用,其中一些组件不向这个组件传递productTag道具,这是我添加propstype和defautProps的主要目的。