我有我的路线这个页面导航设置和我期待的是,当我按下this.props.navigation.goback功能应该带我到第二页,如果我在第三页上,但显然它是带我去的第一页。
即使Android或IOS的自然GoBack的行为,它带我去的第一页。
我通过浏览
this.props.navigation.navigate('Screens')
NavigatorPage:在这里我使用DrawerNavigator
import { createAppContainer ,createDrawerNavigator} from 'react-navigation';
import Dashboard from './pages/dashboard';
import Splash from './pages/Splash';
import Readmore from './pages/readmore';
import Tabs from './pages/tab';
import Check from './pages/checking';
import Search from './pages/searchpage';
import SideMenu from './componenet/sideMenu'
const AppNavigator = createDrawerNavigator({
// Prac: { screen: Check},
Splash :{ screen: Splash},
Dashboard: { screen: Dashboard},
Readmore: { screen: Readmore },
Tabs: { screen: Tabs },
Search: { screen: Search }
},
{
contentComponent: SideMenu,
drawerWidth: 300,
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
});
export default createAppContainer(AppNavigator);
编辑一个这样做了以后
const AppNavigator = createDrawerNavigator({
// Prac: { screen: Check},
stacknav:{screen:stacknav}
},
{
contentComponent: SideMenu,
drawerWidth: 300,
headerMode: 'none',
navigationOptions: {
headerVisible: false,
}
});
const stacknav = createStackNavigator ({ Splash :{ screen: Splash},
Dashboard: { screen: Dashboard},
Readmore: { screen: Readmore },
Tabs: { screen: Tabs },
Search: { screen: Search } });
export default createAppContainer(AppNavigator);
答案很简单,把你的drawernavigator的所有屏幕新createstacknavigator内。然后继承堆栈导航里面drawernavigator作为一个孩子。即
const stacknav = createStackNavigator ({ Splash :{ screen: Splash},
Dashboard: { screen: Dashboard},
Readmore: { screen: Readmore },
Tabs: { screen: Tabs },
Search: { screen: Search } });
Const appNavigator = createdrawernavigator({ stacknav:{screen:stacknav}},{ ...}}
希望能帮助到你。遗憾的差的代码结构,因为我从移动设备回答。但可以肯定它会成为你的帮助。谢谢 !
使用createStackNavigator代替createDrawerNavigator。
我已经找到了解决方案,并在此之前,有一些事情是我们需要关注。确保每一个常量名开始大写字母我不能只是单纯地从同一个文件导入堆栈导航到抽屉导航。所以我把堆栈到另一个文件和导出默认情况下它直接进入我的Drawernavigator。这固定我的问题