在React应用程序中使用Redux时,许多其他问题通过提醒应将容器组件封装在提供程序或根组件中,或将特定上下文作为选项传递给connect
来解决Could not find "store" in the context of...
的问题。我正在做所有这些,只有当我单独包装容器组件时,它才有效。。。而我希望提供者包装根组件。问题出在哪里?
版本
react: 16.13.1
redux: 4.0.5
react-redux: 7.2.0
index.jsx
const store = createStore(reducer, state);
const context = React.createContext(undefined);
render(
<Provider store={store} context={context}>
<App />
</Provider>,
document.getElementById("app")
);
ContainerComponent.jsx呈现在App
组件内部的某个位置。
export const ContainerComponent = connect(
mapStateToProps,
mapDispatchToProps,
null,
{ context }
)(MyComponent);
错误
Uncaught Error: Could not find "store" in the context
of "Connect(MyComponent)". Either wrap the root component
in a <Provider>, or pass a custom React context provider
to <Provider> and the corresponding React context consumer
to Connect(MyComponent) in connect options.
=>不过一切都完成了!
自定义上下文参数仅用于非常罕见的用例。你不应该正常使用它。
删除该代码。