Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重定向到Framework7路由器中的其他路由?_Javascript_Vue.js_Html Framework 7 - Fatal编程技术网

Javascript 如何重定向到Framework7路由器中的其他路由?

Javascript 如何重定向到Framework7路由器中的其他路由?,javascript,vue.js,html-framework-7,Javascript,Vue.js,Html Framework 7,在我的项目中,我将Framework7与Vue一起使用,但在一些基本的东西上遇到了问题。在我的f7路线中,我希望在/路线上有一个守卫,检查用户是否登录,然后重定向到/home/,否则重定向到/login/的登录屏幕。但在当前设置下,重定向不起作用。你知道为什么吗 routes.js const routes = [ { path: '/', async: function (routeTo, routeFrom, resolve, reject) { if (is

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


Vlad在F7论坛上亲自回答:

async
不适用于重定向,为此,您需要使用路由的beforetenter(1):

beforeEnter(to, from, resolve, reject) {
  const router = this;
  if (/* need redirect */) {
    reject();
    router.navigate('/another-path/');
    return;
  }
  resolve();
}
除此之外,我的问题是,我在登录路径中使用了
loginScreen:Login,
而不是
component:Login,

做出这两项改变确实解决了这个问题