RootTabNavigator
| Auth Screen
| Welcome Screen
| MainTabNavigator
| FeedStacknavigator
| Screen A
| MenuStackNavigator
| Screen B <-I'm here and want to reset to 'Auth Screen'
树形结构显示了我应用的导航结构。我在屏幕B&#39;并想回到Auth Screen。 (NOT Navigate)当我导航到Auth Screen时,它会创建新的Auth Screen,我想避免它。
if ( ... ) {
// I'm getting undefined error here
nextProps.navigation.reset('Autho');
为什么不起作用?
const resetAction = NavigationActions.reset({
index: 0,
actions: [
// getting error because auth screen is not in MenuStacknavigator.
NavigationActions.navigate({ routeName: 'Auth'})
]
})
this.props.navigation.dispatch(resetAction);
const backAction = NavigationActions.back({
key: 'Autho'
})
# Back Action doesn't do anything
this.props.navigation.dispatch(backAction); # not working
发送自定义操作。 &lt; - StackNavigator有一些解决方案,但就我而言,它是TabNavigator。
答案 0 :(得分:3)
请随时回答。我现在找到了一个简单的解决方案:
const backAction = NavigationActions.back({
key: null
})
nextProps.navigation.dispatch(backAction);
答案 1 :(得分:1)
要重置为开头,我通常会使用:
NavigationActions.reset({
index: 0,
actions: []
)
顺便说一句,更好的导航结构将是根据身份验证状态切换出多个选项卡导航器。在您的情况下,您可以在AuthTabNavigator
和MainTabNavigator
之间进行切换。
希望这有帮助!