react-native - 如何在 root 之前导航到屏幕?
问题描述
我正在尝试实现一个取消按钮,它将执行类似navigation.popTopop() 的操作。问题是它会在我期望的屏幕之前导航回一个屏幕,因为该屏幕是整个导航历史的根源。是否可以给它一个索引?
很难设置到特定屏幕,因为屏幕嵌套了选项卡,并且返回几个屏幕会简单得多。
e.g.
navigation.navigate(SCREEN_A);
...
navigation.navigate(SCREEN_B);
...
navigation.navigate(SCREEN_C);
...
navigation.navigate(SCREEN_D);
我试图在没有明确将屏幕设置为 SCREEN_B 的情况下转到 SCREEN_B。谢谢你的帮助!
解决方案
您可以指定getId
功能来识别屏幕:
https://reactnavigation.org/docs/screen/#getid
<Stack.Screen
name={SCREEN_B}
component={ScreenB}
getId={({ params }) => params.someId}
/>
现在,如果您导航到,它只会在参数相同navigation.navigate(SCREEN_B, { someId: 'someId' })
的情况下导航到旧屏幕。someId
或者,如果您总是想要push
一个新屏幕,您可以使用push
:
navigation.push(SCREEN_B)
推荐阅读
- environment-variables - 如何检查 Robot 中是否存在环境变量?
- angular - Ion-Toggle 刷新后它必须从本地存储中取回数据
- jenkins - Jenkins 条件阶段变更集总是被跳过
- arrays - 使用 powershell 从 SharePoint 文档库中提取数据到 CSV
- android - 在动态布局中更改 textview 文本颜色
- python - Python Pygame 图层未显示或未显示 callabel 错误
- c++ - 带有智能指针的继承对象的深拷贝
- php - 无法使用准备好的语句插入日期
- mysql - 数据库表设计:在同一个表中分组或创建子表并加入
- html - 如何使用新列表重新加载组件?