在"Connect(Component)"的上下文中找不到"store",尽管传递了提供程序和上下文



在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.

=>不过一切都完成了!

自定义上下文参数仅用于非常罕见的用例。你不应该正常使用它。

删除该代码。

相关内容

  • 没有找到相关文章

最新更新