您如何默认默认默认道具用于可选的react中所需道具的可选儿童属性



我有一个必需的对象,但并不是所有的孩子。

例如,这是我要做的:

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)

关于如何正确执行此操作的任何想法?

这毫无意义。默认道具进行浅合并,这意味着当您提供自行车道具时,它将覆盖您设置的默认道具。

另外,您实际上是否在组件上设置了默认道具和道具类型?

最新更新