如何使用 beforeEnter 从 children 重定向到特定路由

How can I redirect to a specific route from a children using beforeEnter

根据下面的路由配置,如果用户未通过身份验证,我的应用程序应重定向到“/login”:

const ifAuthenticated = (to, from, next) => {
  if(Store.getters.isAuthenticated) {
    next();
    return;
  }
  else
  {
    next({ path: '/login' });
  }
}

export default new Router({
  routes: [
    {
      path: '/login',
      name: 'Login',
      component: DsLogin
    },
    {
      path: '/',
      name: 'home',
      component: DsHome,
      beforeEnter: (to, from, next) => {
        ifAuthenticated(to, from, next);
      },
    },
    {
      path: '/other',
      name: 'other',
      component: DsOther,
      beforeEnter: (to, from, next) => {
        ifAuthenticated(to, from, next);
      },
    },
    {
      path: '/demand-history',
      name: 'demand history',
      component: DsDemandHistory,
      beforeEnter: (to, from, next) => {
        ifAuthenticated(to, from, next);
      },
      redirect: '/demand-history/1/all/all/all',
      children: [
        {
          path: ':page/:type/:state/:owner',
          name: 'demand history filtered',
          props: true,
          beforeEnter: (to, from, next) => {
            ifAuthenticated(to, from, next);
          }
        }
      ]
    }
  ]
})

当我导航到路径“/”或“/other”时,它运行良好。 但是当我导航到路径“/demand-history/1/all/all/all”时,我被重定向到“/demand-history/1/all/all/login”

使用next({ name: 'Login' })也不行

我应该如何设法重定向到“/login”?

感谢

重定向不是由方法 ifAuthenticated 发起的,而是在我的代码中的上游。

拦截器捕获到 401 错误并使用 Router.push('login')

重定向到登录

Router.push({ name: 'Login' }) 修改代码解决了我的问题。