reactjs - 使用 PropTypes 测试反应组件
问题描述
如果我有一个PropTypes
定义的反应组件?测试这个以确保在不依赖prop-types
包装警告的情况下提供道具的最佳方法是什么?
例如,如果我有这样的组件:
const Button = ({ text }) => <button>{text ? text : 'default button text'}</button>
Button.propTypes = {
text: PropTypes.string.isRequired
}
如果我不提供任何道具,我可能想对其进行测试以确保default button text
渲染它,但在我的文本中我收到默认警告:
console.error node_modules\fbjs\lib\warning.js:33
Warning: Failed prop type: The prop `text` is marked as required in `Button`, but its value is `undefined`.
我的一部分说,PropTypes
意思是我们真的不需要测试这个。我的一部分说我们应该将警告和默认文本作为单独的测试用例进行测试。
对此的任何想法和意见将不胜感激。
解决方案
删除.isRequired
指定并使用defaultProps
静态属性来分配默认道具值而不是执行三元条件。根据需要标记道具然后尝试为其分配默认值是一种反模式。
推荐阅读
- php - PHP升序保持相同的键
- sql - 声明为 Varchar(8000) 的 SQL 变量在 5160 处修剪内容
- c++ - 使用 Cmake 设置 Qt QML 单元测试
- javascript - 视频进度未在点击时更新 - Javascript
- python - 修改 Anaconda 站点包位置
- java - 导航到上一个片段并销毁当前片段
- java - JFR 如何计算事件开始时间?
- macos - 启动詹金斯容器但是遇到权限被拒绝虽然我已经为卷运行了“chown”
- java - 模拟存储库 JUnit 时出现 NullPointerException
- php - 从选择下拉列表中的所有帖子中获取所有自定义帖子元值以用作过滤器 - Wordpress