我正在尝试创建一个新的DrizzleContext组件,但是在我的“localhost:3000”中运行以下错误:
> Could not find "store" in either the context or props of "Connect(c)".
> Either wrap the root component in a <Provider>, or explicitly pass
> "store" as a prop to "Connect(c)"我的index.js看起来是这样的:
import React from 'react';
import ReactDOM from 'react-dom';
import { Drizzle, generateStore } from "drizzle";
import { DrizzleContext } from "drizzle-react";
import { LoadingContainer } from 'drizzle-react-components'
import './index.css';
import App from './App';
//import * as serviceWorker from './serviceWorker';
import drizzleOptions from './drizzleOptions';
const drizzleStore = generateStore(drizzleOptions);
const drizzle = new Drizzle(drizzleOptions, drizzleStore);
ReactDOM.render(
(<DrizzleContext.Provider drizzle={drizzle} >
<LoadingContainer>
<App />
</LoadingContainer>
</DrizzleContext.Provider>),
document.getElementById('root')
);我尝试将drizzleOptions保持为内联(一个小的默认选项对象),但没有效果。我唯一能想到的就是我的毛毛雨相关的进口产品都有这样的警告:
无法找到模块“微雨”的声明文件,同样适用于“毛毛雨反应”和“毛毛雨反应”组件。
。。任何帮助都将不胜感激。谢谢。
--更多的信息更新了--我试着做了一些调试,问题似乎是在“generateStore”功能的毛毛雨中。正在返回的存储对象是空的,即使传递的drizzleOptions参数具有正确的值。有什么指示吗?
-更新--“generateStore”不是问题。对于每个dapp,存储对象默认保持为空,且未填充值。问题是另一回事。
发布于 2019-01-14 13:10:09
结果发现问题可能是'LoadingContainer‘组件。我把它取下来,它就开始起作用了。我认为问题是'LoadingContainer‘可能正确地从DrizzleContext.Provider接收到道具,但是没有将它们进一步注入到子组件中(在本例中是< App /> )。
这进一步引出了一个问题:请任何人澄清如何接收从DrizzleContext.Provider发送到“类”组件的上下文吗?对于“函数”组件,我想它非常简单--使用< DrizzleContext.Consumer >。我尝试给一个构造函数提供上下文支持,如下所示:
constructor(prop, drizzleContext)但它不起作用。有什么想法吗?
发布于 2021-12-26 07:04:08
我也面临着同样的问题。<LoadingContainer/>不赞成根据文档在最近的版本中改变。
https://ethereum.stackexchange.com/questions/65510
复制相似问题