如何在 React Native Navigation v5 中返回到另一个堆栈?
How to go back to another stack in react native navigation v5?
我想从 AboutStack 中的 About 组件导航到 HomeStack 中的 Home Details :
HomeStack.js
export default function HomeStack() {
return (
<Stack.Navigator>
<Stack.Screen component={Home} name="Home" />
<Stack.Screen component={HomeDetail} name="HomeDetail" />
</Stack.Navigator>
);
}
AboutStack.js
export default function AboutStack() {
return (
<Stack.Navigator>
<Stack.Screen component={About} name="About" />
<Stack.Screen component={AboutDetail} name="AboutDetail" />
</Stack.Navigator>
);
}
在关于组件中,我导航到 HomeStack 导航器中的 HomeDetails 屏幕:
About.js
<Button
title="Go Home details"
onPress={() => navigation.navigate('HomeStack', { screen: 'HomeDetail' })} />
在 HomeDetail 屏幕中,我尝试返回应该返回到 AboutStack 中的关于屏幕,但它转到 HomeStack 中的主屏幕:
HomeDetail.js
<Button onPress={() => navigation.goBack()} title="Go back" />
它返回到它自己的 Stack 的根屏幕。
这是我使用的导航版本:
"@react-navigation/native": "^5.8.10",
"@react-navigation/stack": "^5.12.8",
如何从 HomeStack 的 HomeDetails 屏幕返回到 About Stack 的 About 屏幕?
我通过将 url 参数传递给 HomeDetail 屏幕解决了这个问题:
About.js
navigation.navigate('HomeDetail', { url: 'About' })
HomeDetail.js
function HomeDetail({ navigation, route }) {
console.log(route);
return (
<View style={{ marginTop: 300 }}>
<Text>Home Detail</Text>
<Button onPress={() => navigation.navigate(route.params.url)} title="Go back" />
</View>
);
}
我想从 AboutStack 中的 About 组件导航到 HomeStack 中的 Home Details :
HomeStack.js
export default function HomeStack() {
return (
<Stack.Navigator>
<Stack.Screen component={Home} name="Home" />
<Stack.Screen component={HomeDetail} name="HomeDetail" />
</Stack.Navigator>
);
}
AboutStack.js
export default function AboutStack() {
return (
<Stack.Navigator>
<Stack.Screen component={About} name="About" />
<Stack.Screen component={AboutDetail} name="AboutDetail" />
</Stack.Navigator>
);
}
在关于组件中,我导航到 HomeStack 导航器中的 HomeDetails 屏幕:
About.js
<Button
title="Go Home details"
onPress={() => navigation.navigate('HomeStack', { screen: 'HomeDetail' })} />
在 HomeDetail 屏幕中,我尝试返回应该返回到 AboutStack 中的关于屏幕,但它转到 HomeStack 中的主屏幕:
HomeDetail.js
<Button onPress={() => navigation.goBack()} title="Go back" />
它返回到它自己的 Stack 的根屏幕。
这是我使用的导航版本:
"@react-navigation/native": "^5.8.10",
"@react-navigation/stack": "^5.12.8",
如何从 HomeStack 的 HomeDetails 屏幕返回到 About Stack 的 About 屏幕?
我通过将 url 参数传递给 HomeDetail 屏幕解决了这个问题:
About.js
navigation.navigate('HomeDetail', { url: 'About' })
HomeDetail.js
function HomeDetail({ navigation, route }) {
console.log(route);
return (
<View style={{ marginTop: 300 }}>
<Text>Home Detail</Text>
<Button onPress={() => navigation.navigate(route.params.url)} title="Go back" />
</View>
);
}