3

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

例如,这就是我想要做的:

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 的大部分默认设置),我收到以下错误:

为 isRequired propType 定义的 defaultProp "bike"。(反应/默认道具匹配道具类型)

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

4

1 回答 1

1

无论如何,这样做是没有意义的。默认道具进行浅合并,这意味着当您提供自行车道具时,它将覆盖您设置的默认道具。

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

于 2017-11-28T19:44:56.017 回答