首页 > 解决方案 > 未捕获[不变违规:在上下文或道具中找不到“商店”

问题描述

基本上我正在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'过通过商店导出组件,但它不起作用,因为它与商店没有连接

有任何想法吗?

标签: javascriptreactjsjestjsenzyme

解决方案


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


推荐阅读