0

请问,我使用elementui的时候写了v-if判断,虽然功能可行但一直报错:

[Vue warn]: Avoid using non-primitive value as key, use string/number value instead.

下面上代码:

<template>
  <div>
    <el-carousel :interval="5000" type="card" height="600px" @change="cardchange">
      <el-carousel-item v-for="item in items" :key="item">
        <img :src="item.imgsrc" alt="">
      </el-carousel-item>
    </el-carousel>
    <template>
      <div>
        <h3 v-if="num == 0">0</h3>
        <h3 v-else-if="num == 1">1</h3>
        <h3 v-else-if="num == 2">2</h3>
        <h3 v-else-if="num == 3">3</h3>
        <h3 v-else-if="num == 4">4</h3>
        <h3 v-else>f</h3>
      </div>
    </template>
  </div>
</template>

初衷是上面carousel自动切换的时候判断他的索引,并在下面的标签中显示对应的介绍,请各位大神帮忙解答,thk

2017-08-16 提问
4 个回答
3

已采纳
<el-carousel-item v-for="item in items" :key="item">

这里的[Vue warn]是指不要用对象或是数组作为key,用string或value作为key。
你这里很明显item是对象,:key相当于是索引的作用,提高循环性能,如果循环量较小,不写也可以的。

7

提示真的很明显了,key的问题

<el-carousel-item v-for="(item, index) in items" :key="index"></el-carousel-item>
1

改为<el-carousel-item v-for="item in items" :key="item.value">

0

已经提示很明显了啊 use string/number value instead.

撰写答案

推广链接