reactjs - 从反应原生的堆栈导航器中删除屏幕
问题描述
我有一个具有以下流程的用例:仪表板-> AddProductScreen1.0->AddProductScreen2.0-> 产品详细信息屏幕
这些屏幕位于堆栈导航器中
添加产品屏幕是一个多页表单,用于填写产品的详细信息。在 AddProductScreen2.0 上单击 AddProduct 按钮时,将调用 API 来保存产品。如果调用成功,我们将转到 ProductDetailsScreen。此时我想从堆栈导航器中删除 AddProductScreens 以便在单击后退按钮时我们再次移动到仪表板而不是 AddProductScreens
如何在本机反应中做到这一点?
解决方案
我能想到的是,当您从屏幕 1 移动到屏幕 2 和详细信息屏幕时,您可以使用替换而不是推送/导航,如果您需要从屏幕 2 导航到屏幕 1,您也可以覆盖后退按钮操作以使用替换。第二个选项是在第二个屏幕上弹出/ popToTop,然后导航到详细信息。
例子:
useEffect(() => {
if (newCreatedTaskId) {
navigation.pop();
navigation.replace('UpdateTaskMembers', {
id: newCreatedTaskId,
newTask: true,
});
}
}, [newCreatedTaskId, navigation]);
推荐阅读
- linux - Ubuntu - NGINX 在 DigitalOcean 空间 /mnt/ 上找不到文件
- swift - 在 swift 包管理器清单中包含资源
- pymongo - PyMongo:如何获取与任何可能的过滤器匹配的所有对象?
- javascript - 未按预期显示时间
- c++ - 模板化包装器中基类型的 C++ 转换运算符
- asp.net - 如何在 Visual Basic 中格式化日期?
- c - 是否可以在 C 语言中给出数学表达式作为参数?
- c# - 使用 UWP/C# 在笔记本电脑中查找使用前置摄像头的应用程序#
- selenium - 在 Google Chrome 和 Selenium 之间切换
- excel - 范围联合方法有问题