我有一个必需的对象,但并不是所有的孩子。
例如,这是我要做的:
import PropTypes from 'prop-types';
const propTypes = {
bike: PropTypes.shape({
id: PropTypes.number.isRequired,
color: PropTypes.string
}).isRequired
}
const defaultProps = {
bike: {
color: 'red'
}
}
在此示例中,我试图说具有ID的自行车对象,但不需要颜色,默认情况下将是红色的。
使用我的ESLINT规则(大部分Airbnb的默认设置),我会收到以下错误:
defaultprop"自行车"定义为Isrequired Proptype。 (react/default-props-match-prop-types)
关于如何正确执行此操作的任何想法?
这毫无意义。默认道具进行浅合并,这意味着当您提供自行车道具时,它将覆盖您设置的默认道具。
另外,您实际上是否在组件上设置了默认道具和道具类型?