ins*_*eof 2 react-native react-native-android react-navigation
我正在制作一个 react-native 移动应用程序,我有一个导航抽屉,上面有一个注销按钮。我知道如何从那里导航到登录屏幕,使用props.navigation.navigate('Login'),但问题是如果用户这样做,他们仍然可以从登录屏幕打开抽屉并导航回其他屏幕之一,或者按后退按钮在安卓上。
如果用户来自另一个页面,我想我可以在登录屏幕上进行检查,然后禁用打开抽屉按钮,但这似乎有点麻烦。我想知道是否有正确的方法可以做到这一点,也许是在登录时重置堆栈,我不确定。
你的实施不好。从您提供的细节来看,我认为您的所有页面都合二为一stack。我建议您将身份验证和应用程序堆栈分开。为此,我强烈推荐这个:https : //reactnavigation.org/docs/en/auth-flow.html
但重置堆栈:
重启
重置操作会擦除整个导航状态并将其替换为多个操作的结果。
- 索引 - 编号 - 必需 - 导航状态下路线阵列上活动路线的索引。
- 操作 - 数组 - 必需 - 将替换导航状态的导航操作数组。
- 键 - 字符串或空 - 可选 - 如果设置,具有给定键的导航器将重置。如果为空,根导航器将重置。
import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Profile' })],
});
this.props.navigation.dispatch(resetAction);
Run Code Online (Sandbox Code Playgroud)
来源:https : //reactnavigation.org/docs/en/stack-actions.html
| 归档时间: |
|
| 查看次数: |
8292 次 |
| 最近记录: |