vue2.0在v-for循环标签上加 :key 会报错,是什么问题?

报错和代码见下图,之前的代码使用 :key 是没有问题的,后来换个电脑 npm install 之后再运行代码就报这个错误,想问一下,怎么解决这个问题,感觉直接删掉虽然不报错,但是之前加 :key 肯定是有原因的,现在不确定怎么解决?

vue用的不好,希望大神能够指导一下。

谢谢两位回答,都是对的,只能取最上面的了,见谅!

clipboard.png

clipboard.png

// 简写需要渲染的总数据
data(){
    return{
        searchData:[
            {
                "packetId": "YUNWA001",
                "packetName": "电信全国1G流量",
                "operator": "DX",
                "isActive": 1,
                "originalPrice": 15,
                "activePrice": 0.01,
                "activeImg": "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1426240363,2675256423&fm=26&gp=0.jpg",
                "size": 6291456,
                "threshold": 100
            },
            {
                "packetId": "啦啦啦AA的",
                "packetName": "联通全国1G流量",
                "operator": "LT",
                "isActive": 1,
                "originalPrice": 15,
                "activePrice": 5,
                "activeImg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1502167613212&di=c8b04f9fa94cd05ecef2e24d5849b4c6&imgtype=0&src=http%3A%2F%2Fupload.chinaz.com%2F2017%2F0209%2F17020923505383107.jpg",
                "size": 5242880,
                "threshold": 30
            },
            {
                "packetId": "YDTEST001",
                "packetName": "移动全国1G流量",
                "operator": "YD",
                "isActive": 1,
                "originalPrice": 20,
                "activePrice": 0.01,
                "activeImg": "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1502167582909&di=f467baa31de3448b761894868b287aab&imgtype=0&src=http%3A%2F%2Fimages.ccoo.cn%2Fyp%2F20101221%2F2010122120380421.jpg",
                "size": 6291456,
                "threshold": 30
            }
        ]
    }
}
阅读 13.4k
2 个回答

vue 2.x 版本之后 :key只支持 number 和 string类型之类的 primitive 类型, 你的key是个object 不是 primitive type .例如 key可以改成 shop.packetId

报错很明显了,你这地方key的值是一个对象,他需要的是字符串或者数字,可以用下标赋值给key

v-for="(shop, index) in searchData" :key="index"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题