我想允许一个组件有两种可能的proptypes (字符串或未定义的)之一。我正在使用PropTypes.oneOfType来做这件事。
import React from 'react';
import PropTypes from 'prop-types';
Product.propTypes = {
productTag: PropTypes.oneOfType([
PropTypes.string, undefined
]),
};
Product.defaultProps = {
productTag: undefined
};这是正确的方式吗?
发布于 2020-08-20 00:03:28
如果属性是未定义的,那么这实际上意味着它不存在,也就是说,您试图表达的是productTag属性是可选的,但当它存在时,它需要是一个字符串。是那么回事吗?
正如the documentation所说,“默认情况下,这些都是可选的。”因此,在这种情况下,您可以简单地使用:
Product.propTypes = {
productTag: PropTypes.string
};因为您没有将其标记为isRequired。
发布于 2020-08-19 23:59:19
import React from 'react';
import PropTypes from 'prop-types';
Product.propTypes = {
productTag: PropTypes.oneOfType([
PropTypes.oneOf([undefined, PropTypes.string])
]),
};
OR
Product.propTypes = {
productTag: PropTypes.oneOfType([
PropTypes.string,
PropTypes.oneOf([undefined])
]),
};
Product.defaultProps = {
productTag: undefined
};
我认为你可以这样做,通过使用PropTypes.oneOf。我不认为只传递undefined是可行的。
https://stackoverflow.com/questions/63490791
复制相似问题