我正在开发一个反应性项目。这是我的主屏幕,可以从子屏幕接收路线参数。
(用户可以从MainScreen
导航到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'})
}
以上代码段说明了如何将路由参数从子屏幕传递到主屏幕。
总体来说,效果很好。但是,有一个问题。它位于MainScreen
内部,一旦从ChildScreen
返回到MainScreen
,route?.params
内部的参数值将被保留。我的意思是,如果我终止了该应用的进程并再次启动该应用,该应用再次显示MainScreen
,则
if (route?.params) {
//do something
}
执行是因为route?.params
包含先前从子屏幕传递的参数。这很糟糕,因为我希望主屏幕有一个干净的开始。如何摆脱这个问题?
答案 0 :(得分:0)
尝试使用navigation.push
代替navigation.navigate
。