У меня есть простая настройка навигации. Я хотел бы иметь StackNavigator
для моих маршрутов аутентификации и TabNavigator
для другого контента.
Я создал оба этих навигатора:
const PreContentNavigator = createStackNavigator({ // Non auth routes
Landing: {
screen: Landing
},
LogIn: {
screen: LogIn
},
SignUp: {
screen: SignUp
}
}, {
navigationOptions: {
header: null
}
});
const ContentNavigator = createBottomTabNavigator({ // Auth routes
Dashboard: {
screen: Dashboard
},
Library: {
screen: Library
},
Settings: {
screen: Settings
}
});
Я связал их оба с SwitchNavigator
, потому что это, кажется, рекомендуемый способ сделать это в соответствии с документами. Код для этого выглядит следующим образом:
const MainNavigator = createSwitchNavigator({
PreContent: {
screen: PreContentNavigator
},
Content: {
screen: ContentNavigator,
}
});
Теперь, похоже, это работает, но есть довольно большая проблема. В какой-то момент я хочу перейти от пользователя PreContentNavigator
к ContentNavigator
. Я попробовал это на моей Landing
странице:
const Landing = (props) => {
return (
<View style={styles.body}>
<TouchableHighlight>
<Text>Nextbook</Text>
</TouchableHighlight>
<TouchableHighlight>
<Text>Log In</Text>
</TouchableHighlight>
<TouchableHighlight>
<Text>Sign Up</Text>
</TouchableHighlight>
<TouchableHighlight onPress={() => props.navigation.navigate("Content"/*"LogIn"*/)}> // Using LogIn does work!
<Text>Skip for now...</Text>
</TouchableHighlight>
</View>
);
};
Проблема в том, что это просто не работает. НО я могу перемещаться от маршрутов внутри моего PreContentNavigator
к другим маршрутам в PreContentNavigator
(см. Комментарий в коде).
Я чувствую, что пример на официальной странице плагина использует тот же принцип, что и я. Так может ли кто-нибудь указать, где я что-то упускаю?