react-native - React 堆栈导航自动启动第一个屏幕
问题描述
我有一个以下堆栈和切换导航器。这是代码:
父堆栈
const ParentStack = createStackNavigator(
{
Screen1,
Screen2,
Screen3,
},
{headerMode: 'none', initialRouteName: 'Screen1'},
);
用户堆栈
const UserStack = createStackNavigator(
{
Screen11,
Screen22,
Screen33,
},
{headerMode: 'none', initialRouteName: 'Screen11'},
);
交换机堆栈
const AppNavigator = createSwitchNavigator(
{
Auth,
ParentStack,
UserStack,
},
{
initialRouteName: 'Auth',
},
);
当我在“身份验证”屏幕上时,我开始Screen2
使用以下代码:
this.props.navigation.navigate('Screen2')
Screen2 启动成功。但是当我按下 Back 时,Screen1 也会出现在堆栈中。但我只启动了 Screen2。
- 此默认反应本机行为是否自动启动堆栈中的第一个屏幕?
- 有没有办法只启动 Screen2?
解决方案
import {NavigationActions, StackActions} from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({routeName: 'your_screen_name'}), //MainTabbarScreen NavigationActions.navigate({ routeName: 'MainTabbarScreen' })//Login
],
});
this.props.navigation.dispatch(resetAction);
导航到 screen2 时使用上面的代码。
推荐阅读
- javascript - 如何在点击重定向 url API 时自动关闭新窗口
- azure-functions - 使用 Terraform 零停机部署 Azure Functions
- javascript - 如何处理 express api 中的多个错误?就像我想处理 404,405,400 和 500
- reactjs - 在 MDBReact 数据表中推送数组变量
- vba - 查找粘贴了链接源的 Hybrishape 是否存在
- jenkins - 使用 curl 从终端调用构建后,如何在终端构建期间查看 Jenkins 控制台输出?
- strsplit - 只用逗号分割成字符串数组,而不是值c#
- ios - 由于 iOS 13.2 中未捕获的异常“NSInternalInconsistencyException”而终止应用程序
- javascript - gsap 旋转 - 如何避免急剧过渡
- python - 如何使用 python / json 中的输入在数据之间插入数据?