微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我在我的项目中将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,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,

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。