未被捕获的[不变违反:在上下文或道具中都找不到“存储”

时间:2018-09-26 12:38:32

标签: javascript reactjs jestjs enzyme

基本上我是将function counter(n) { let i=0; const res = {}; res.finished = new Promise(resolve => { res.count = () => { if (++i == n) resolve(); }; }); return res; } 导入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',所以只是通过商店来导出组件,但是那样就行不通了,因为它与商店没有连接

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在测试Redux连接的组件时,需要使用伪造的存储或内存中的存储来渲染它们。通常,最佳实践是将未连接的组件渲染为import {component} from '...';,然后传递组件期望的道具。 redux库已经有测试用例,因此没有必要重复做这项工作。