返回不是使用 React Navigation 5 正确弹出导航
Going back isn't popping navigation corretly with React Navigation 5
我目前的设置方式是
根导航
- 主页导航? AuthNavigation(取决于登录与否)
- 编辑个人资料
- 配置文件 (ProfileStack)
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 导航检测到您正在返回上一页。所以不会有问题。
当然,有办法解决你的问题。但就目前而言,这是到达那里的最快方式。而且没有错误的方法。
我目前的设置方式是
根导航
- 主页导航? AuthNavigation(取决于登录与否)
- 编辑个人资料
- 配置文件 (ProfileStack)
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 导航检测到您正在返回上一页。所以不会有问题。
当然,有办法解决你的问题。但就目前而言,这是到达那里的最快方式。而且没有错误的方法。