import function 的方法导致 router 中 声明的路由配置变成 undefined

小弟最近在研究vue,于是在github上找了一个比较全的大神的项目拆开学习。
碰到了一个奇怪的问题
router index.js

export const constantRouterMap = [
  { path: '/login', component: Login, hidden: true }
]

clipboard.png

如图所示,为了日后做权限管理,所以我还是把它放在了vuex中,

import { constantRouterMap } from '@/router/index.js';

const permission = {
  state: {
    routers: constantRouterMap
  }
};

export default permission;

动态生成的左侧菜单组件依赖于getters中的 state.permission.routes
当我尝试到表格生成的时候,问题来了
当我在请求数据的页面import { fetchList, fetchPv } from '@/api/article_table';时数据可以得到,但是为什么左侧菜单受到了影响Orz;
这里随便import一个function,之前声明的菜单变量,constantRouterMapimport之后都会变成undefined

clipboard.png
黑人问号脸???删掉import这行菜单就不是undefined了。
跪求大大们解答,感觉最近一下子接触的未知事物太多,有点揠苗助长了

阅读 6.2k
3 个回答

题主 解决了么 我也遇到了诶 好神奇的问题

正好我也遇到了,这个问题是因为循环引用,router里面引用了store,store里面也引用了router,这时候处于这个loop中间的所有变量都会变成引用类型,也就是你不能一开始就获取他的真实值,只能得到undefined

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题