如何在 Tab Navigator React Navigation 5 中始终设置 Stack Navigator 的第一个屏幕

osa*_*omy 7 react-native stack-navigator react-navigation-v5

反应导航 5

我在 TabNavigator 内部构建了一个 StackNavigator,并且主屏幕和其他屏幕之间的导航正在工作。但问题是,当我从 Tab2 移动到 Tab1 时,我希望 Tab1 总是显示我 StackNavigator 的第一个屏幕。

tab1
   -> Stack
        -screen1
        -screen2
tab2
Run Code Online (Sandbox Code Playgroud)

我在 screen2 上,然后移到 tab2 然后我移回 Tab1 我想总是显示 screen1。

我尝试使用

OnTabPress({navigation})=>{
    navigation.navigate("stackName",{
     screen: "screen1"
   }).
}
Run Code Online (Sandbox Code Playgroud)

它的工作,但它首先显示我 screen2 然后导航到 screen1。有没有其他解决方案。 https://snack.expo.io/@usamasomy/groaning-donut

小智 8

在选项中使用 unmountOnBlur: true 。例如。

<Tab.Screen
        name="Stack1"
        component={Stack1}
        options={{
          tabBarLabel: "Stack1",
          unmountOnBlur: true,
        }}
      />
Run Code Online (Sandbox Code Playgroud)

因此,当您离开此选项卡并在 Stack1 的 screen2 上时,当您返回此选项卡时,您将始终出现在此 stackNavigator 的第一个屏幕上。