Vue.js 2.5 / Visual Studio代码编辑器
我收到了这个警告,我怎么能摆脱它呢?
<template :slot="slotName" slot-scope="props" v-for="slotName in $scopedSlots?Object.keys($scopedSlots):null">
<slot :name="slotName" :row-data="props.rowData" :row-index="props.rowIndex" :row-field="props.rowField"></slot>
</template>
我尝试添加索引,但它没有解决此问题
<template :slot="slotName" slot-scope="props" v-for="(slotName, index) in $scopedSlots?Object.keys($scopedSlots):null" :key="index">
<slot :name="slotName" :row-data="props.rowData" :row-index="props.rowIndex" :row-field="props.rowField"></slot>
</template>
答案 0 :(得分:11)
您可以放心地忽略该警告。它来自vue的eslint插件,它是一个bug,got fixed a month ago但是vetur仍然使用旧版本的插件。
必须将键属性添加到传递给组件的内容
答案 1 :(得分:9)
这个问题已经很好回答,但是我想添加一个示例和指向文档的链接:
此结构导致上述错误:
<div v-for="(item, index) in items">
{{index}}. {{item.name}}
</div>
您可以通过更改如下语法来修复它:
<div v-for="(item, index) in items" :key="item.id">
{{index}}. {{item.name}}
</div>
如果您的商品没有任何唯一的ID字段,则只需编写:key="item"
。
但是,出于性能原因,您的数据应有一个id字段。
答案 2 :(得分:2)
希望这行得通。
父组件
<template>
<ul>
<VideoListItem v-for="video in videos" v-bind:key="video.title" v-bind:video="video"></VideoListItem>
</ul>
</template>
<script>
import VideoListItem from "./VideoListItem";
export default {
name: "VideoList",
components: { VideoListItem },
props: ["videos"]
};
</script>
子组件
<template>
<li>{{ video.snippet.title}}</li>
</template>
<script>
export default {
name: "VideoListItem",
props: ["video"]
};
</script>
<style scoped>
</style>
================================================ =======
听=>每当您提供v-for属性时,我们都需要提供v-key属性。 增强了重新发布我们的项目列表的功能。
答案 3 :(得分:1)
这对我有用
<div :class="sliderClass()" v-for="(slide,index) in slides" :key="index">
<div :class="sliderClass()" v-for="slide in slides" :key="slide.SliderID">
答案 4 :(得分:1)
假设您要遍历名为 users 的数组,则可以执行以下操作:
<div v-for="(user,id) in users" :key="id" >
<div class="card" >
...........................
</div>
</div>
答案 5 :(得分:0)
<li class="list-group-item" v-for="server in Servers" v-bind:key="server">
像这样在标签中指定唯一键。
答案 6 :(得分:0)
让我们在这里看一个简单的例子!
我正在构建待办事项列表应用程序。因此,我构建了一个名为Todo
的组件,并在我的TodoList
组件内部将这样调用Todo
组件
<todo v-for="todo in todos" v-bind:key="todo" v-bind:todo="todo"></todo>
希望有帮助!