解决报错Avoid using non-primitive value as key, use string/number value instead.

找到图中画圈的文件
这个错误信息的意思是要避免使用非基本值作为键,而是使用字符串/数字值代替。

[1] 这个错误通常出现在使用<el-select>中的<el-option>进行循环遍历值时。

[2] 这个错误的解决方案是检查是否有重复的键值,并确保使用字符串或数字作为键值。

[3] 这个错误通常是由于在v-for循环中的:key赋值问题导致的,解决方法是使用合适的字符串或数字作为:key的值。

我这边报错的原因是两个键值写的一样

然后:key的值要唯一值,我之前写的是item

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这个警告是由 Vue 的 key 绑定机制引起的,当你给一个非原始值(如对象或数组)分配 key 值时,Vue 会发出这个警告。这是因为非原始值无法被有效比较,可能导致性能问题或意外行为。 要解决这个问题,你可以将非原始值转换为字符串或数字,以便 Vue 可以正确比较 key 值。以下是一些解决方法: 1. 使用字符串或数字作为 key 如果你的数据是对象数组,可以使用对象属性的值作为 key,如下所示: ```html <template> <div> <ul> <li v-for="item in items" :key="item.id">{{ item.name }}</li> </ul> </div> </template> ``` 在这个例子中,我们使用 item.id 作为 key 值,因为它是一个数字。 2. 使用计算属性 你可以使用计算属性将非原始值转换为字符串或数字,然后将其用作 key 值。例如: ```html <template> <div> <ul> <li v-for="item in computedItems" :key="item.key">{{ item.name }}</li> </ul> </div> </template> <script> export default { data() { return { items: [ { id: 1, name: 'item 1' }, { id: 2, name: 'item 2' }, { id: 3, name: 'item 3' }, ], }; }, computed: { computedItems() { return this.items.map((item) => { return { key: String(item.id), name: item.name, }; }); }, }, }; </script> ``` 在这个例子中,我们定义了一个计算属性 computedItems,该属性将 items 数组转换为包含 key 和 name 属性的新数组。key 属性被转换为字符串,因此我们可以安全地将其用作 key 值。 3. 使用 Vue 的内置 key Vue 还提供了一个特殊的内置 key 值 $index,它可以用于遍历简单数组,例如: ```html <template> <div> <ul> <li v-for="(item, index) in items" :key="$index">{{ item }}</li> </ul> </div> </template> ``` 在这个例子中,我们使用 $index 作为 key 值,因为它是一个数字,且在遍历简单数组时是有效的。 总之,为了避免这个警告,你需要确保将非原始值转换为字符串或数字,并将其用作 key 值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值