ano*_*irl 7 react-native-navigation react-navigation react-navigation-v5
我的应用程序有一个 TabNavigator,每个选项卡中都有一个 StackNavigator。通过单击不同的选项卡在堆栈之间导航时,我不会重置堆栈,因此当您更改选项卡时,堆栈包含以前的状态。但是,偶尔从一个选项卡中的屏幕中,我想导航到不同选项卡中的特定屏幕,在这种情况下,我想重置目标选项卡中的堆栈。
TabNavigator
Tab1
StackNavigator
- ScreenA
- ScreenB
Tab2
StackNavigator
- Screen1
- Screen2
Run Code Online (Sandbox Code Playgroud)
我希望能够在 Screen2 上放置一个按钮来重置 Tab1 上的堆栈。
我想知道此处文档中提到的“目标”参数是否有帮助,但没有关于如何使用它的示例。https://reactnavigation.org/docs/navigation-actions/
(我在这里搜索过,但为 4.x 建议的答案似乎不再适用)。谢谢!
最终我能够用reset动作来做到这一点。我为我想要重置的选项卡调度了嵌套状态:
navigation.dispatch(
CommonActions.reset({
routes: [
{
name: 'tab-route-name',
state: {
routes: [
{ name: 'stack-route-1' },
{ name: 'stack-route-2' },
{ name: 'stack-route-3' }
]
}
}
]
})
)
Run Code Online (Sandbox Code Playgroud)
这似乎很聪明,只要选项卡导航器是当前路由的父级,它就会找到它并重置它。
| 归档时间: |
|
| 查看次数: |
2121 次 |
| 最近记录: |