react-native - 从不同的堆栈将导航器重置为主页
问题描述
假设我在Profile3
。我想重置为Stack1
(底部导航器的初始路线)。这怎么可能?我只能重置为Stack3
. 但不是Stack1
。
如果我尝试替换Stack3
to Stack1
or Bottom1
,它将有错误消息。似乎 stackreset 必须来自同一个堆栈导航器?
错误:没有为键 Stack1 定义路由。必须是 Stack3、Profile3 之一
重置代码
import { NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Stack3' })],
});
this.props.navigation.dispatch(resetAction);
导航代码:
const Stack1 = createStackNavigator(
{
Stack1: Home1,
Profile1: Profile
}
);
const Stack2 = createStackNavigator(
{
Stack2: Home2,
Profile2: Profile
}
);
const Stack3 = createStackNavigator(
{
Stack3: Home3,
Profile3: Profile
}
);
const AppNavigator = createBottomTabNavigator({
Bottom1: Stack1,
Bottom2: Stack2,
Bottom3: Stack3
}, {
{
initialRouteName: 'Bottom1',
});
export default createAppContainer(AppNavigator);
解决方案
import { NavigationActions } from 'react-navigation';
const resetAction = NavigationActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Stack1 ' })],
});
this.pr
ops.navigation.dispatch(resetAction);
如果您想重置 1 ,则将其替换Stack3
为Stack1
,并且在调度时它将从索引 0 加载该堆栈
编辑 :
因为我们需要将主堆栈重置为我们需要使用NavigationActions
而不是StackActions
执行重置
让我知道这是否有效
推荐阅读
- c# - 如何区分这两个行索引
- python - 如何确定一个点是否位于 3D 空间中的多边形内?
- anaconda - Anaconda 提示不显示(基本)环境,而是显示路径
- python - H2O - 在网格搜索中使用 LASSO 进行特征选择
- form-recognizer - 使用表单识别器进行监督学习
- node.js - 尝试连接到在 Windows 10 中的 Docker 容器上运行的 NodeJS 服务器时出现 ERR_CONNECTION_REFUSED
- elasticsearch - Elasticsearch 更新映射分析器
- android - Android开发,蓝点,我的位置按钮和实际位置不起作用
- regex - vscode 片段 - 转换和替换文件名
- angular - 根据 ag-Grid 上的容器大小和/或设备隐藏某些列