返回不是使用 React Navigation 5 正确弹出导航

Going back isn't popping navigation corretly with React Navigation 5

我目前的设置方式是

根导航

ProfileStack

我遇到的问题是。当我转到 LandingPage -> ProfilePage (userId 4) -> Following 然后按 navigation.goback() 没有问题。它带我回到用户页面。当我尝试

LandingPage -> ProfilePage (userId 4) -> Following -> ProfilePage (userId 5) -> goBack() 结果是'不会返回到以下列表页面,而是返回到 LandingPage.

我认为在 React Navigation 中,它遵循历史,因此返回会导致弹出当前页面并返回到我们访问的最后一个页面。我不明白这部分吗?我返回导航的方式是:

return <ProfileStack.Navigator>
    <ProfileStack.Screen name="ProfilePage" component={Profile} options={({ route, navigation }) => {
        return {
            title: "Profile Page",
            headerLeft: () => {
                return <Ionicons onPress={() => navigation.goBack()} name="md-arrow-round-back" size={30} color="black" style={{ marginLeft: 15 }} />
            },
            headerRight: () => {
                return <Ionicons onPress={() => navigation.navigate('EditProfile')} name="ios-settings" size={30} color="black" style={{ marginRight: 15 }} />
            }
        }
    }
    } />
    <ProfileStack.Screen name="ProfileFollowers" component={ProfileFollowers} options={() => {
        return {
            title: 'Follower'
        }
    }} />
    <ProfileStack.Screen name="ProfileFollowing" component={ProfileFollowing} options={() => {
        return {
            title: 'Following'
        }
    }}/>
    <ProfileStack.Screen name="Setting" component={Settings} />
</ProfileStack.Navigator>

您仍然可以使用以下命令:

navigation.navigate(Screen)

React 导航将屏幕存储在堆栈中。因此,堆栈中的第二个单元格始终是您导航到新页面的页面。最后,使用同样的命令,你会得到类似goBack()的体验。 React 导航检测到您正在返回上一页。所以不会有问题。 当然,有办法解决你的问题。但就目前而言,这是到达那里的最快方式。而且没有错误的方法。