请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于react-navigation跳转问题

我在页面里面使用的是

react-navigation

首先打开setpujs页面,然后设置了

const SimpleApp = StackNavigator({
   welcome: {screen: WelcomePage},
   HomePage:{screen:HomePage},
   CustomKeyPage:{screen:CustomKeyPage}
});

这个时候因为WelcomePage在第第一个,就直接进入了WelcomePage页面。

在WelcomePage里面使用

componentDidMount(){
   setTimeout(()=>{
       this.props.navigation.navigate('HomePage',{user:'Luojie'})
   },3000)
}

跳转到了HomePage页面


https://img1.sycdn.imooc.com/szimg//596db7ed00013fa414480968.jpg

https://img1.sycdn.imooc.com/szimg//596db852000187db12750959.jpg

https://img1.sycdn.imooc.com/szimg//596db8530001b47512700938.jpg

这个时候,我点击返回按钮,就会先返回到HomePage,再返回到WelcomePage,然后再点击返回按钮才会退出app,也就是得先进入了欢迎页面才退出,我现在需要改成在点击HomePage的时候就跳出,查询react-navigation,得知可以设置

const SimpleStack = StackNavigator(  

    {  

        Profile: {  

            path: 'people/:name',  

            screen: MyProfileScreen,  

        },  

        Photos: {  

            path: 'photos/:name',  

            screen: MyPhotosScreen,  

        },  

        Home: {  

            screen: MyHomeScreen,  

        },  

    },  

    {  

        initialRouteName: 'Home',  

    }  

);

如果我再重新写一次SimpleApp不太合理,我想知道怎样在进入了WelcomePage之后再次设置initialRouteName

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2017-07-20 10:07:02

可以通过react-navigation的reset api来实现你的需求哦:

var {navigation,theme,selectedTab}=params;
const resetAction = NavigationActions.reset({
   index: 0,
   actions: [
       NavigationActions.navigate({
           routeName: 'HomePage',
           params:{
               theme:theme,
               selectedTab:selectedTab
           },
       })
   ]
})
navigation.dispatch(resetAction)


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信