Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 使用React navigation从React Native(IOS)中的多个屏幕返回_React Native_React Navigation - Fatal编程技术网

React native 使用React navigation从React Native(IOS)中的多个屏幕返回

React native 使用React navigation从React Native(IOS)中的多个屏幕返回,react-native,react-navigation,React Native,React Navigation,假设我有四个屏幕A->B->C->D->E,我想从E导航回C,为此我使用不同的路径,比如, firstRoute=>A->B->C是一条路线, secondRoute=>D->E是另一条路线。 我首先将路由切换到“firstRoute”,然后使用堆栈“C” 我这样做是因为, 我想用IOS后向幻灯片从E到C,然后当我再次使用IOS后向幻灯片时,我应该回到B,后面跟着A,而不是回到E本身,进行无限循环。 我无法完成这项任务,有人能帮我写一个堆栈导航示例,并告诉我如何区分它们。您可以使用react导航

假设我有四个屏幕A->B->C->D->E,我想从E导航回C,为此我使用不同的路径,比如, firstRoute=>A->B->C是一条路线, secondRoute=>D->E是另一条路线。 我首先将路由切换到“firstRoute”,然后使用堆栈“C” 我这样做是因为, 我想用IOS后向幻灯片从E到C,然后当我再次使用IOS后向幻灯片时,我应该回到B,后面跟着A,而不是回到E本身,进行无限循环。 我无法完成这项任务,有人能帮我写一个堆栈导航示例,并告诉我如何区分它们。

您可以使用react导航的
.goBack()

比如:

类主屏幕扩展React.Component{
render(){
const{goBack}=this.props.navigation;
返回(
goBack()}title=“从此主屏幕返回”/>
goBack(null)}title=“返回任何地方”/>
戈巴克('key-123')}
title=“从键123返回”
/>
);
}
}
但是,只有当你知道你的C路线的钥匙时,它才会起作用

您可以在这里查看更多详细信息!

只需与原始的
stackNavigator组合使用即可:

  • 将A-B-C放入
    stackNavigator
  • 创建一个包含D和E的D'
    switchNavigator
  • 将其放入主
    堆栈导航器
    ,即A-B-C-D'
然后

  • 通常从A导航到B再导航到C
  • 在C中,您可以使用
    。像平常一样导航(D)
  • 从D可以使用
    。像平常一样导航(E)
但正如
switchNavigator
中所定义的那样,它的屏幕之间不允许自动导航(这也包括Android backButton),因此:

  • 从E返回将切换到C
  • 从D返回将切换到C
  • 您仍然可以使用
    手动从E切换到D。导航(D)
请注意,D和E中的默认页眉后退按钮也会落在C上


希望这篇文章足够清晰,并能帮助您

goBack()使用android设备后退按钮或用户界面生成的按钮。如果我使用的是IOS背面幻灯片,这是IOS的手势。它只是简单地移除上面堆积的堆栈。所以这不是我要求这个的原因。非常感谢你的想法和帮助。我会更清楚地问你这个问题。