vue -- foreach not a function 或者map not a function的解决办法

欢迎访问我的个人博客:http://www.xiaolongwu.cn

前言

老套路,先说出现这种问题的原因:

在做vue项目时,如果我们在组件中需要一个变量,哪怕这个变量最开始是没值的,我们也必须先在data中注册这个变量;

只有这样,我们的这个变量才能是响应式的,不然就失去了响应式的功能;

问题就在这里,好多人(也包括我自己)的习惯就是写变量的值等于’’(空)或者null;

map和foreach方法只能对数组或者类数组进行遍历,如果不是数组就会报错,很明显我们的初始值不是一个数组;

解决办法

其实很简单,在vue组件中注册变量的初始化值时不要随意的写一个空或者null,让他等于[](空数组)就可以了;

例子:

data() {
    return {
    // 如果这个值在后面是当做一个数组使用,并且需要去遍历的时候需要这样写
      value: [] 
    }
  }

我的个人博客地址:http://www.xiaolongwu.cn

github资源地址:vue – foreach not a function 或者map not a function的解决办吧

我的CSDN博客地址:https://blog.csdn.net/wxl1555

如果您对我的博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同学习进步。

邮箱:wuxiaolong802@163.co

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,以下是一个简单的示例代码: 1. 在后台返回的菜单数据中,需要包含每个菜单对应的路由路径和权限标识,例如: ```json [ { "name": "Dashboard", "icon": "dashboard", "path": "/dashboard", "permission": "dashboard" }, { "name": "User", "icon": "user", "path": "/user", "permission": "user" } ] ``` 2. 在vue-element-admin中,可以使用vue-router和vue-permission来实现动态路由和权限控制。首先在main.js中引入vue-router和vue-permission: ```javascript import Vue from 'vue' import VueRouter from 'vue-router' import VuePermission from 'vue-permission' Vue.use(VueRouter) Vue.use(VuePermission) ``` 3. 然后在router/index.js中定义路由和权限控制规则。首先定义一个路由表,其中的每个路由对应后台返回的菜单数据中的一个菜单: ```javascript export const constantRoutes = [ { path: '/', redirect: '/dashboard', hidden: true }, { path: '/dashboard', component: () => import('@/views/dashboard/index'), name: 'Dashboard', meta: { title: 'Dashboard', icon: 'dashboard', permission: 'dashboard' } }, { path: '/user', component: () => import('@/views/user/index'), name: 'User', meta: { title: 'User', icon: 'user', permission: 'user' } } ] ``` 4. 然后定义一个路由表的生成函数,该函数根据后台返回的菜单数据动态生成路由表: ```javascript export function generateRoutes(menus) { const routes = [] menus.forEach(menu => { const route = { path: menu.path, component: () => import(`@/views${menu.path}`), name: menu.name, meta: { title: menu.name, icon: menu.icon, permission: menu.permission } } routes.push(route) }) return routes } ``` 5. 最后,在用户登录后获取到后台返回的菜单数据后,调用generateRoutes函数生成路由表,并使用VuePermission的$setRoutes方法设置当前用户的路由表和权限规则: ```javascript import { generateRoutes } from '@/router' // 获取后台返回的菜单数据 const menus = await getMenus() // 根据菜单数据生成路由表 const routes = generateRoutes(menus) // 使用VuePermission设置当前用户的路由表和权限规则 Vue.prototype.$setRoutes(routes) Vue.prototype.$setPermissions(menus.map(menu => menu.permission)) ``` 这样就完成了根据后台返回的菜单路径实现权限管理的示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值