javascript - 嵌套反应导航配置在应用程序上下文中找不到 redux 商店
问题描述
我有一个带有 redux 和 react-navigation 的 react-native 应用程序。我正在尝试创建 2 个导航器。第一个是stackNavigator
,包含 4 个屏幕,第二个是 a bottomTabBarNavigator
,包含 2 个屏幕。两者都合并为一个,
createAppContainer(createStackNavigator(navigator1, navigator2))
我也有 redux。
除了第二个导航器的一个屏幕外,一切正常。(它有 2 个屏幕,第一个工作正常,第二个是抛出错误。
我已经改变了 AppNavigator 连接,从简单
export default AppNavigator
至
export default connect()(AppNavigator)
App.js - main container
class App extends Component {
render() {
return (
<Provider store={store}>
<PersistGate persistor={persistor}>
<AppNavigator/>
</PersistGate>
</Provider>
);
}
}
AppNavigator.js
const navigator = createStackNavigator({
Login: {screen: LoginView, navigationOptions: {header: null}},
Menu: {screen: MenuView},
Competition: {screen: CompetitionView},
Map: {screen: CompetitionMapView},
});
const singleNavigator = createBottomTabNavigator({
CompetitionDetails: {screen: CompetitionDetailsView},
RouteView: {screen: RouteView}
});
const AppNavigator = createAppContainer(createStackNavigator({
Main: navigator,
Competition: singleNavigator
}));
singleNavigator.navigationOptions = () => {
return {
header: null,
};
};
navigator.navigationOptions = () => {
return {
header: null,
};
};
export default connect(undefined,undefined)(AppNavigator);
RouteView.js - component causing error,
// normal react component with only render and mapStateToProps / mapDispatchToProps funcs
export default connect(
mapStateToProps,
mapDispatchToProps
)(RouteView);
一切正常,直到来自“singleNavigator”的 RouteView。当我通过此屏幕时,结果如下错误:
不变违规:不变违规:在“连接(RouteView)”的上下文中找不到“商店”。要么将根组件包装在 a 中<Provider>
,要么将自定义的 React 上下文提供程序传递给<Provider>
连接选项中的 Connect(RouteView),并将相应的 React 上下文使用者传递给 Connect(RouteView)。
解决方案
推荐阅读
- python - 我的方法是蛮力搜索还是线性搜索?
- javascript - 响应式菜单未在 IE 11 上打开
- javascript - ReactDOM.unstable_renderSubtreeIntoContainer() 和 ReactDOM.createPortal() 方法有什么区别?
- java - 带毕加索的倒带按钮
- facebook - 有没有办法让谁喜欢我在 Facebook 上的帖子,就像我们在 YouTube 上一样,作为 API?
- angular7 - 如何将 Angular 版本从 7 升级到 11,是否建议升级?
- javascript - 如何在 html 中使用外部 javascript 类?
- python - Python让我在类外访问受保护的实例属性
- c# - UPDATE 然后 SELECT 数据 MySQL 到 textBox 以在 NFC 中写入
- reactjs - 为更新 GraphQL Apollo 中的表制作正确的架构和解析器