一、问题描述

错误描述:翻译过来大概的意思就是缺少一个key,来指定相应的属性

 warning  in ./src/view/Index.vue
(Emitted value instead of an instance of Error) <el-menu-item v-for="item2 in item.children">: component lists rendered with v-for should have explicit k
eys. See https://vuejs.org/guide/list.html#key for more info.
 @ ./src/view/Index.vue 11:0-361
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js
 warning  in ./src/view/Index.vue

(Emitted value instead of an instance of Error) <el-submenu v-for="item in $router.options.routes">: component lists rendered with v-for should have expl
icit keys. See https://vuejs.org/guide/list.html#key for more info.
 @ ./src/view/Index.vue 11:0-361
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

 warning  in ./src/view/Index.vue

(Emitted value instead of an instance of Error) <el-menu-item v-for="item2 in item.children">: component lists rendered with v-for should have explicit k
eys. See https://vuejs.org/guide/list.html#key for more info.

 @ ./src/view/Index.vue 11:0-361
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

 warning  in ./src/view/Index.vue

(Emitted value instead of an instance of Error) <el-menu-item v-for="item2 in item.children">: component lists rendered with v-for should have explicit k
eys. See https://vuejs.org/guide/list.html#key for more info.
 @ ./src/view/Index.vue 11:0-361
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js
 warning  in ./src/view/Index.vue
(Emitted value instead of an instance of Error) <el-submenu v-for="item in $router.options.routes">: component lists rendered with v-for should have expl
icit keys. See https://vuejs.org/guide/list.html#key for more info.
 @ ./src/view/Index.vue 11:0-361
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

出现警告的代码:

<el-submenu v-for="(item,index) in $router.options.routes" :key="index" :index="index+''">
            <template slot="title"><i class="el-icon-message"></i>{{item.name}}</template>
            <el-menu-item v-for="(item2,index2) in item.children"  :index="item2.path"
             :class="$route.path==item2.path?'is-active':''">{{item2.name}}</el-menu-item>
</el-submenu>

二、解决方案
增加语句 :key = “index”,具体位置可参照下面的代码

<el-submenu v-for="(item,index) in $router.options.routes" :key="index" :index="index+''">
            <template slot="title"><i class="el-icon-message"></i>{{item.name}}</template>
            <el-menu-item v-for="(item2,index2) in item.children" :key="index2" :index="item2.path"
             :class="$route.path==item2.path?'is-active':''">{{item2.name}}</el-menu-item>
</el-submenu>

处理之后,再运行项目,警告就没有了。。。

在这里插入图片描述

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐