不变违规:找不到"存储"在" Connect(App)"的道具的任何一个环境中

时间:2018-05-16 04:17:10

标签: react-native redux react-redux

注意,在阅读之前我已经看过以下内容:

JestJS -> Invariant Violation: Could not find "store" in either the context or props of "Connect(Portfolio)"

ReactJs/Redux Invariant Violation: Could not find "store" in either the context or props of "Connect(LoginContainer)"

Could not find "store" in either the context or props of "Connect(App)" In an react-redux app

另外,我按照此处显示的教程:https://www.youtube.com/watch?v=9mlwjZL3Fmw

主要区别在于我使用create-react-native-app来初始化视频创建者没有的项目。

我想知道是否可以让连接识别所有组件,同时将App.js中的App组件保存为js const。 当我切换到使用javascript类时,以前的解决方案提供了工作:

class App extends React.Component {等。

代码可在此处找到:https://github.com/qxh5696/first-react-native-app

我想找出为什么"存储"没有得到承认。称之为顽固,但我很想知道是否有人找到了解决这个问题的方法。

2 个答案:

答案 0 :(得分:1)

该错误的根本原因是,当我们将react-redux应用程序放在一起时,我们应该期望看到一个结构,其中在顶部具有Provider标签,该标签具有redux存储的实例。

然后,该Provider标记呈现您的父组件,将其称为App组件,它依次呈现该应用程序内的所有其他组件。

这是关键部分,当我们使用connect()函数包装组件时,connect()函数希望看到带有Provider标签的层次结构中的某些父组件。 / p>

因此,您在其中放置了connect()函数的实例,它将查找层次结构并尝试找到Provider

这就是您想要发生的事情,但是在测试环境中,流程正在崩溃。

答案 1 :(得分:0)

导入

import {connect} from "react-redux";

代替

import connect from "react-redux/es/connect/connect";