v-for和外部组件(croppa)

时间:2019-02-25 02:28:03

标签: vue.js

我在Vue Croppa中拥有动态组件。

<croppa v-for="(image, key) in images" :key="key" ...props></croppa>

如果我在images中添加一个元素,它将添加一个新的croppa组件,并且效果完美。

问题是当我尝试删除一个元素时。

例如,如果我添加了3张图片:

images: [
'image1.png',
'image2.png',
'image3.png,
]

如果我删除了image2 (index: 1),则会删除image3。

要按位置保存croppa的所有配置(初始图像,位置,flipX等),我需要做什么?

谢谢

1 个答案:

答案 0 :(得分:1)

只有在循环数组(在您的情况下为{{1时),才使用index伪指令的v-for自变量(以您的情况为key)为设置项key属性的可靠方法}})不会被突变。

在上面的示例中,当images长度更改时,渲染项目的索引保持不变。这意味着,如果第二项已删除,则渲染器可以注意到关键索引的更改
images0, 1, 2 因此,最后索引为0, 1的项目将被删除。

为了实现预期的行为,应将2属性设置为唯一值。对于对象数组,通常是key或任何唯一属性。对于字符串数组(如果数组中的值是唯一的),可以将id属性设置为该值。示例:

key

如果该数组中的某些值不是唯一的(如果值来自外部源-API,用户输入等,则应假定这些值),<croppa v-for="image in images" :key="image" /> 属性应设置为串联值和索引。示例:

key