小编Sun*_*ide的帖子

为什么 Vue 使用它的“就地补丁”,尽管我在 v-for 循环中绑定了一个键?

我想使用 v-for 循环生成 Vue 组件的动态列表。在那个循环中,我传递了组件使用的数据,还有其中的一些子组件。

列表中的项目可以单独删除。因此,为了避免“就地补丁”(https://vuejs.org/v2/guide/list.html)会弄乱子组件,我将键绑定到 for 循环。但它不起作用。

<div v-for="(shift, index) in shifts"  v-bind:key="index">
  <hr>
    <Shift v-bind:shiftdata="shifts[index]" v-on:DeleteShift="DeleteShift" />
  <hr>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我现在删除一个位于中间的组件,它的子组件将被渲染到另一个组件中。

另一件让我感到困惑的事情是,如果我将“shift”而不是“index”作为键,它就可以正常工作。但是我收到警告,因为“键是非原始值”和“检测到重复键”。

javascript vue.js

2
推荐指数
1
解决办法
389
查看次数

标签 统计

javascript ×1

vue.js ×1