Javascript React Redux&;物料界面:组件没有';t将存储传递到';已连接';小孩

Javascript React Redux&;物料界面:组件没有';t将存储传递到';已连接';小孩,javascript,reactjs,redux,react-redux,material-ui,Javascript,Reactjs,Redux,React Redux,Material Ui,重复代码沙盒 完全错误未捕获错误:在“连接(上传内部)”上下文中找不到“存储”。将根组件包装在中,或将自定义的React上下文提供程序传递给,并在Connect opt中传递相应的React上下文使用者以进行连接(UploadInternal)。 情况一切正常,然后将react 15.x更新为16.13.x,react redux从5.x更新为7.2.x,现在,当连接的组件作为子组件传递到Upload.jsx中的对话框组件时,出现上述错误。如果存储未嵌套在对话框中,则会将其正确传递给子组件。我使

重复代码沙盒

完全错误
未捕获错误:在“连接(上传内部)”上下文中找不到“存储”。将根组件包装在中,或将自定义的React上下文提供程序传递给,并在Connect opt中传递相应的React上下文使用者以进行连接(UploadInternal)。


情况一切正常,然后将react 15.x更新为16.13.x,react redux从5.x更新为7.2.x,现在,当连接的组件作为子组件传递到
Upload.jsx
中的
对话框
组件时,出现上述错误。如果存储未嵌套在
对话框
中,则会将其正确传递给子组件。我使用的是非常旧版本的Material UI(v0.20.2),但它是
软件包。json
文件将依赖项
react
react dom
列为
^16.0.0
,因此应该可以。如果您没有这样做,请将此代码添加到index.js中:

import { Provider } from "react-redux";
import thunk from "redux-thunk";
import rootReducer from "./store/reducers";

const composeEnhances = window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() : f => f;

const store = createStore(rootReducer,compose(applyMiddleware(thunk),composeEnhances));

const app = (
<Provider store={store}>
   <App />
</Provider>
);

如果尚未将以下代码添加到index.js:

import { Provider } from "react-redux";
import thunk from "redux-thunk";
import rootReducer from "./store/reducers";

const composeEnhances = window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() : f => f;

const store = createStore(rootReducer,compose(applyMiddleware(thunk),composeEnhances));

const app = (
<Provider store={store}>
   <App />
</Provider>
);

我相信这是由一个过时的
MaterialUI
组件造成的,该组件在上下文之外创建了一个popover,如前所述。嵌套在
MaterialUI
组件
对话框中的子级抛出错误。但是,如果子项未嵌套在
对话框中
,则它可以访问存储。这表明根目录、它的子目录和子目录可以访问存储,并且显示了在这种情况下,
对话框
会导致边界被打破。

我认为这是由过时的
MaterialUI
组件造成的,该组件正在上下文之外创建popover,如前所述。嵌套在
MaterialUI
组件
对话框中的子级抛出错误。但是,如果子项未嵌套在
对话框中
,则它可以访问存储。这表明根用户、其子用户和子用户可以访问存储,并显示
对话框
在这种情况下会导致边界被打破。

重复:您的材质用户界面已被弃用:@HMR我写了这篇文章,因为我相信它更清晰。我应该删除另一个吗?虽然Material UI v0.20.2已经被弃用,但它应该仍然可以工作。重复:您的Material UI已经被弃用:@HMR我发表了这篇文章,因为我认为它更清晰。我应该删除另一个吗?尽管材料UIV0.20.2已经被弃用,但它应该仍然可以工作。您的建议中是否有一些不同的东西没有显示在代码沙盒中?我检查了代码,但无法运行它,您是否尝试将{…this.props}作为参数传递给对话框?传递{…props}没有任何效果。如果你点击沙盒链接,它会打开一个实时界面,如果你点击右下角的按钮“打开沙盒”,你可以看到代码并进行实时更改,还有一个刷新按钮。我有类似的东西。您的建议中是否有一些不同的东西没有显示在代码沙盒中?我检查了代码,但无法运行它,您是否尝试将{…this.props}作为参数传递给对话框?传递{…props}没有任何效果。如果单击“沙盒”链接,它将打开一个实时UI,如果单击右下角的“打开沙盒”,您可以看到代码并进行实时更改,还有一个刷新按钮。