首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Framework7路由器中重定向到另一条路由?

如何在Framework7路由器中重定向到另一条路由?
EN

Stack Overflow用户
提问于 2020-10-22 07:44:54
回答 1查看 304关注 0票数 0

我在我的项目中使用Framework7和Vue,在一些非常基本的东西上遇到了麻烦。在我的f7路由中,我希望在/路由上有一个守卫,它检查用户是否登录,然后重定向到/home/,否则重定向到/login/的登录屏幕。但在当前的设置下,重定向不起作用。你知道为什么吗?

routes.js

代码语言:javascript
运行
AI代码解释
复制
const routes = [
  {
    path: '/',
    async: function (routeTo, routeFrom, resolve, reject) {
      if (isUserLoggedIn()) {
        console.log(`*** redirecting to /home/`);
        resolve({redirect: '/home/'});
      } else {
        console.log(`*** redirecting to /login/`);
        resolve({redirect: '/login/'});
      }
    },
  },
  {
    path: '/login/',
    loginScreen: Login,
    on: {
      pageBeforeIn: function (event, page) {
        console.log(`*** /login/ onBeforeIN`);
        // never called
      }
    }
  },
  {
    path: '/home/',
    component: HomePage,
    on: {
      pageBeforeIn: function (event, page) {
        console.log(`*** /home/ onBeforeIN`);
        // never called
      }
    }
  }
];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 07:50:02

由弗拉德本人在F7论坛here上回答

async不支持重定向,需要使用route的beforeEnter (https://framework7.io/docs/routes.html#route-before-enter-leave 1):

代码语言:javascript
运行
AI代码解释
复制
beforeEnter(to, from, resolve, reject) {
  const router = this;
  if (/* need redirect */) {
    reject();
    router.navigate('/another-path/');
    return;
  }
  resolve();
}

除此之外,我问题是在登录路径中使用loginScreen: Login,而不是component: Login,

进行这两个更改确实解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64477541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档