React propTypes 将 isRquired 添加到指定形状的对象

React propTypes add isRquired to an object whose shape is specified

我有一个 data 对象,我正在验证其道具类型,如下所示:

UserCard.propTypes = {
  data: PropTypes.shape({
    name: PropTypes.string.isRequired,
    email: PropTypes.string.isRequired,
    phone: PropTypes.string.isRequired,
    company: PropTypes.shape({
      name: PropTypes.string.isRequired,
    }),
    website: PropTypes.string.isRequired,
    address: PropTypes.shape({
      street: PropTypes.string.isRequired,
      suite: PropTypes.string.isRequired,
      city: PropTypes.string.isRequired,
      zipcode: PropTypes.string.isRequired,
    }),
  }),
};

我正在使用抛出此错误的 eslint:

propType "data" is not required, but has no corresponding defaultProps declaration

我可以为 data 对象添加 defaultProps,但是有什么方法可以将 isRequired 添加到数据对象并避免完全需要默认属性?

我刚刚浏览了一篇关于 React 道具类型的博客 post,在其评论的深处,我找到了答案。所有需要做的就是在形状方法之后添加 isRequired 像这样:

UserCard.propTypes = {
  data: PropTypes.shape({
    name: PropTypes.string.isRequired,
    email: PropTypes.string.isRequired,
    phone: PropTypes.string.isRequired,
    company: PropTypes.shape({
      name: PropTypes.string.isRequired,
    }),
    website: PropTypes.string.isRequired,
    address: PropTypes.shape({
      street: PropTypes.string.isRequired,
      suite: PropTypes.string.isRequired,
      city: PropTypes.string.isRequired,
      zipcode: PropTypes.string.isRequired,
    }),
  }).isRequired,
};