假设我有四个屏幕A-> B-> C-> D-> E,我想从E导航回C,为此我使用了不同的路线,例如, firstRoute => A-> B-> C是一条路由, secondRoute => D-> E是另一条路由。 我首先将路由切换为“ firstRoute”,然后使用堆栈“ C” 我这样做是因为, 我想使用IOS后退幻灯片从E转到C,此后,当我再次使用IOS后退幻灯片时,我应该回到B然后是A,而不是回到E本身并进行无限循环。 我无法执行此任务,有人可以帮我编写示例堆栈导航并路由如何区分它们。
答案 0 :(得分:1)
您可以使用.goBack()
的反应导航!
like:
class HomeScreen extends React.Component {
render() {
const { goBack } = this.props.navigation;
return (
<View>
<Button onPress={() => goBack()} title="Go back from this HomeScreen" />
<Button onPress={() => goBack(null)} title="Go back anywhere" />
<Button
onPress={() => goBack('key-123')}
title="Go back from key-123"
/>
</View>
);
}
}
,但是只有在您知道 C 路线的钥匙时,它才有效!
您可以在此处查看更多详细信息! https://reactnavigation.org/docs/en/navigation-prop.html#goback-close-the-active-screen-and-move-back
答案 1 :(得分:0)
只需将switchNavigators与原始stackNavigator
结合使用:
stackNavigator
switchNavigator
stackNavigator
(将是A-B-C-D'然后
.navigate(D)
.navigate(E)
但根据switchNavigator
中的定义,不允许在屏幕之间自动导航(也包括Android backButton),因此:
.navigate(D)
手动从E切换到D 请注意,D和E中的默认标题后退按钮也将退回到C
希望这篇文章很清楚,对您有帮助