加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 使用反应导航将导航历史记录重置为登录屏幕

发布时间:2020-12-15 20:54:02 所属栏目:百科 来源:网络整理
导读:我想在登录(欢迎)后用户导航到Home.我重置了历史记录,因此用户无法像这样返回: const actionToDispatch = NavigationActions.reset({ index: 0,actions: [NavigationActions.navigate({ routeName: 'Home' })] }); this.props.navigation.dispatch(actionTo
我想在登录(欢迎)后用户导航到Home.我重置了历史记录,因此用户无法像这样返回:
const actionToDispatch = NavigationActions.reset({
            index: 0,actions: [NavigationActions.navigate({ routeName: 'Home' })]
        });

        this.props.navigation.dispatch(actionToDispatch);

这工作正常.按下注销后,用户应该返回欢迎,但它不起作用.这就是我在做什么:

const resetAction = NavigationActions.reset({
            index: 0,actions: [
                NavigationActions.navigate({ routeName: 'Welcome' }),]
        });

        this.props.navigation.dispatch(resetAction);

该错误表示没有“欢迎”的路线.必须是“主要”,“隐私”,“条款”之一,它们是主页中某个标签的路线.见下文:

const AppStack = StackNavigator({
                    Welcome: {
                        screen: Welcome
                    },Home: {
                        screen: Tabs
                    }
                },{
                        initialRouteName: this.state.isLoggedIn ? 'Home' : 'Welcome',headerMode: 'none'
                    }
                );

export const ProfileStack = StackNavigator({
    Profile: {
        screen: Profile,},});

export const SettingsStack = StackNavigator({
    Settings: {
        screen: Settings,{
    });

export const InfoStack = StackNavigator({
    Main: {
        screen: Main,Privacy: {
        screen: Privacy
    },Terms: {
        screen: Terms
    }
});

const routeConfiguration = {

    Profile: { screen: ProfileStack },Settings: { screen: SettingsStack },Info: { screen: InfoStack }
};

const tabBarConfiguration = {
    tabBarOptions: {
        activeTintColor: 'white',inactiveTintColor: 'lightgray',labelStyle: {
            fontSize: Normalize(10),fontFamily: Fonts.book
        },style: {
            backgroundColor: Colors.greenLightGradient,borderTopWidth: 1,borderTopColor: Colors.tabGreenLine
        },}
};

export const Tabs = TabNavigator(routeConfiguration,tabBarConfiguration);
我在这里找到了解决方案: https://github.com/react-community/react-navigation/pull/789.
const resetAction = NavigationActions.reset({
            index: 0,],key: null
        });

this.props.navigation.dispatch(resetAction);

key:null是重要的部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读