如何重定向到 Framework7 路由器中的另一条路线?

How to redirect to another route in Framework7 router?

我在我的项目中使用 Framework7 和 Vue,但在处理一些非常基本的东西时遇到了问题。在我的 f7 路由中,我想在 / 路由上设置一个守卫,该路由检查用户是否已登录,然后重定向到 /home/,否则重定向到 /login/ 处的登录屏幕。但是对于当前的设置,重定向不起作用。有什么想法吗?

routes.js

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
      }
    }
  }
];

弗拉德在 F7 论坛上亲自回答 here:

async 不用于重定向,你需要使用路由的 beforeEnter (https://framework7.io/docs/routes.html#route-before-enter-leave 1) 为此:

beforeEnter(to, from, resolve, reject) {
  const router = this;
  if (/* need redirect */) {
    reject();
    router.navigate('/another-path/');
    return;
  }
  resolve();
}

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

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