【发布时间】:2019-07-18 17:41:51
【问题描述】:
我已经为我的 react native/Expo 应用程序使用 react-navigation 几个月了,它非常有帮助。但是,我无法理解重置机制,如果有人能向我解释一下,我将非常感激,因为文档几乎没有提供有关它的详细信息。
我有嵌套的堆栈导航器、底部标签栏导航器和一个抽屉,其中我有一个可以从应用程序的任何屏幕调用的注销按钮。假设这是我的导航
HOME
DASHBOARD
POST
PostList (initial route of the stack)
PostCreate
PostEdit
PAYMENT
当我转到发布列表时,然后发布创建,然后是仪表板。注销后我被重定向到 HOME,我使用另一个帐户登录,如果我尝试转到最初的发布路线,我将被重定向到 PostCreate 而不是 PostList。
我尝试在按下注销按钮时发送重置操作,但这似乎不是一个可靠的解决方案,因为由于某种原因,当仪表板屏幕处于活动状态时,我无法从抽屉重定向到主页。
const goToHomeAction = StackActions.reset({
index: 1,
actions: [NavigationActions.navigate({ routeName: HOME_ROUTE })],
});
this.props.navigation.dispatch(goToHomeAction);
它会抛出错误“没有为关键 HomeRoute 定义路由,必须是 'Dashboard' 之一”。
有没有办法简单地清除所有导航状态,只需返回应用程序的初始屏幕并清除所有堆栈导航器,以便用户转到各自的初始屏幕?
【问题讨论】:
标签: react-navigation