隐藏 vue 路由

hiding the vue routes

我有我的 vue 路由

const ifAuthenticated = (to, from, next) => {
  if (store.getters.isAuthenticated) {
    next()
    return
  }
  next('/login')
}

const checkAgentPermissions = () => {
  return false
}

export const routes = [
 {
  path: '/users',
    beforeEnter: ifAuthenticated,
    component: Layout,
    meta: { title: 'Agent Onboarding', icon: 'address-card' },
    hidden: checkAgentPermissions,
    children: [
      {
        path: '',
        name: 'Users',
        component: () => import('@/views/users/index.vue')
      },
      {
        .....some more childrens
      }
    ]
 }
]

但通过函数调用时,隐藏始终为真。 如果我将隐藏在 checkAgentPermissions 中的选项更改为 false

 hidden: false // works perfectly

为什么函数不 return false,实际上我需要在 fn 中做一些检查,然后 return true/false 视情况而定。

forEach 路由我通过检查隐藏是否 true/false 在 vue 组件中呈现它们 true/false。

尝试执行你的隐藏函数:

hidden: checkAgentPermissions(),
children: [
...