reactjs - React propTypes 将 isRquired 添加到指定形状的对象
问题描述
我有一个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
我可以为对象添加 defaultProps,data
但有什么方法可以将 isRequired 添加到数据对象并避免完全需要默认道具?
解决方案
我刚刚浏览了一篇关于 react prop types 的博客文章,在其评论的下方,我找到了答案。所需要做的就是isRequired
在 shape 方法之后添加,如下所示:
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,
};
推荐阅读
- javascript - JavaScript:如何更改存储在数组中的变量的属性
- java - 插入小数点 Java 计算器 GUI
- appium - 为 Appium 添加所需功能时遇到问题
- java - NetBeans 无法连接到(gitlab 存储库)的存储库
- python - firebase 中生成的字符串是什么?
- django - 为我所有的 Django ManyToManyField() 添加一个独特的“中介”模型
- pentaho - Pentaho 使用带有先前字段的 Excel 输入
- haproxy - HAProxy - 如果第一台机器返回 404,则从第二台机器提供 URL
- javascript - 从 servlet 中的 ajax 发布请求获取数据(图像 toDataUrl)
- pdf - 如何在 pdftk 中正确创建多语言元数据