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,
};
我有一个 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,
};