react-native - 在我的情况下,如何清除以前从子屏幕传递的路由参数
问题描述
我正在开发一个 react-native 项目。这是我的主屏幕,可以从子屏幕接收路由参数。(用户可以从MainScreen
to导航,ChildScreen
反之亦然。)
const MainScreen = ({route, navigation}) => {
if (route?.params) {
//do something
} else {
//do something else
}
...
}
当从子屏幕导航回主屏幕时,在里面ChildScreen
,我有:
//this is inside Child screen
onPress={() =>
navigation.navigate("MainScreen", {data: 'foo'})
}
上面的代码片段说明了我如何将路由参数从子屏幕传递到主屏幕。
总的来说,它运作良好。然而有一个问题。那是在 内部,一旦从toMainScreen
导航回来,内部参数的值就会被保留。我的意思是,如果我终止应用程序的进程并再次启动应用程序并再次显示,ChildScreen
MainScreen
route?.params
MainScreen
if (route?.params) {
//do something
}
被执行是因为route?.params
包含先前从子屏幕传递的参数。这很糟糕,因为我希望我的主屏幕有一个干净的开始。如何摆脱这个问题?
解决方案
尝试navigation.push
代替navigation.navigate
.
推荐阅读
- angular - 将多个项目(在 CLI 工作区中)延迟加载到一个大型应用程序
- javascript - 在编写 Photoshop 脚本时打开具有 JPG 扩展名的文件夹中的所有文件
- php - php中的扩展不起作用
- alert - 在 Zabbix 中为 LLD 发现的触发器创建操作
- node.js - NodeJS:如何对依赖于其他异步调用的异步函数进行单元测试
- jquery - 如何单击 DataTables 上的任何行?
- php - 上传前在laravel上压缩视频音频图像
- django - 使用 Django Rest Framework 的辅助获取端点
- python - 如何使用无监督方法将句子分类到预定义的主题桶之一
- matlab - 如何从工作区中的变量中删除全局标志