在我的情况下,如何清除先前从子屏幕传递的路由参数

时间:2020-10-06 13:58:52

标签: react-native react-native-navigation

我正在开发一个反应性项目。这是我的主屏幕,可以从子屏幕接收路线参数。 (用户可以从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返回到MainScreenroute?.params内部的参数值将被保留。我的意思是,如果我终止了该应用的进程并再次启动该应用,该应用再次显示MainScreen,则

if (route?.params) {
    //do something
  } 
执行

是因为route?.params包含先前从子屏幕传递的参数。这很糟糕,因为我希望主屏幕有一个干净的开始。如何摆脱这个问题?

1 个答案:

答案 0 :(得分:0)

尝试使用navigation.push代替navigation.navigate