javascript - 未捕获[不变违规:在上下文或道具中找不到“商店”
问题描述
基本上我正在componentB
导入componentA
在componentA
我基本上做类似的事情
const ComponentA = () => {
const ComponentB = blah.map(() => {
})
//more stuff
return(
<div> stuff here </div>
)
}
但是当我为文件运行测试(已经构建)时,ComponentA
它们会出现该错误消息
两个组件都正确连接到商店:
export default connect(mapStateToProps)(ComponentA)
export default connect(mapStateToProps, mapDispatchToProps)(ComponentB)
什么会导致该错误?
我知道之前我不得不以不同的方式导入它。目前我只是像这样导入它:import componentB from '/components'
但我确实尝试import { componentB } from '/components'
过通过商店导出组件,但它不起作用,因为它与商店没有连接
有任何想法吗?
解决方案
当您测试 redux 连接的组件时,您需要使用假存储或内存存储来呈现它们。通常最佳实践是将未连接的组件渲染为import {component} from '...';
,然后传递组件所期望的道具。redux 库已经有测试用例,所以没有必要重复这项工作。
推荐阅读
- flutter - 颤动将 floatingActionButton 向上移动 50 像素
- c++ - 将文件夹“嵌入”到 C/C++ 程序中
- c# - InitializeComponent() 在设计时被自动删除
- git - 如果我的唯一分支被重置为较早的提交然后强制推送,提交消息是否会丢失?
- python - 如何在凯撒密码中保持标点符号不变?- Python
- android - 在 Android 9 Pie 中激活蓝牙
- python - 如何使用 lambda 表达式实现递归函数
- loops - rst='1'时重新开始输入信号
- spring-boot - 是否有具有 SSL 连接配置的 Springboot ActiveMQ 外部代理的完整示例?
- c++ - MinGW 的 ar.exe “在写入存档时无法创建临时文件:没有更多存档文件”错误在代码块中构建时