У меня есть приложение с родной реакцией, с избыточностью и реагирующей навигацией.Я пытаюсь создать 2 навигатора.Первый - stackNavigator
, который включает в себя 4 экрана, второй - bottomTabBarNavigator
, который включает в себя 2 экрана.Оба слиты в один с createAppContainer(createStackNavigator(navigator1, navigator2))
У меня также есть избыточность.
Все работает нормально, кроме одного экрана от второго навигатора.(у него 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);
Все работает нормально, пока RouteView из "singleNavigator". Когда я перехожу к этому экрану, результат ниже ошибки:
Инвариантное нарушение: Инвариантное нарушение: Не удалось найти «хранилище» вконтекст «Connect (RouteView)». Либо оберните корневой компонент в <Provider>
, либо передайте пользовательский поставщик контекста React в <Provider>
и соответствующего потребителя контекста React в Connect (RouteView) в параметрах соединения.