关于react-navigation跳转问题

来源:5-6 Popular(最热)模块的自定义标签功能实现-1

杰神

2017-07-18

我在页面里面使用的是

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页面


http://szimg.mukewang.com/596db7ed00013fa414480968.jpg

http://szimg.mukewang.com/596db852000187db12750959.jpg

http://szimg.mukewang.com/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

写回答

1回答

CrazyCodeBoy

2017-07-20

可以通过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
0

React Native技术精讲与高质量上线App开发

一个真实的上线项目,一次完整的开发过程,全面掌握React Native技术

1577 学习 · 727 问题

查看课程