如何重置嵌套在DrawerNavigatior中的StackNavigator的状态?
我正在构建一个应用程序,其导航基于来自react-navigation库的DrawerNavigator。
此导航器有3个选项卡:
StackNavigator由用户搜索项目的一个屏幕和用户看到搜索结果的第二个屏幕组成。
我不希望搜索结果页面是DrawerNavigator的选项卡,这就是我实现此结构的原因。
问题是:如果用户已经执行搜索,当他点击“搜索”选项卡时,他不会回到搜索屏幕,而是回到搜索结果屏幕。 我宁愿用户回到搜索屏幕。
我怎样才能做到这一点?
您可以通过navigationActions使用导航调度来实现此目的
import { NavigationActions } from 'react-navigation';
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({
routeName: 'DrawerScreen',
params: {},
action: NavigationActions.navigate({ routeName: 'SearchScreen' }),
}),
],
})
navigation.dispatch(resetAction)
import { NavigationActions } from 'react-navigation';
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'SearchScreen'})
]
})
在你的按钮或任何带有事件的元素中添加:this.props.navigation.dispatch(resetAction)
<Button
onPress= {
() => this.props.navigation.dispatch(resetAction)
}
title='Back to Search'
/>
链接地址: http://www.djcxy.com/p/39829.html
上一篇: How to reset the state of a StackNavigator nested in a DrawerNavigatior?