我在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等),我需要做什么?
谢谢
答案 0 :(得分:1)
只有在循环数组(在您的情况下为{{1时),才使用index
伪指令的v-for
自变量(以您的情况为key
)为设置项key
属性的可靠方法}})不会被突变。
在上面的示例中,当images
长度更改时,渲染项目的索引保持不变。这意味着,如果第二项已删除,则渲染器可以注意到关键索引的更改
从images
到0, 1, 2
因此,最后索引为0, 1
的项目将被删除。
为了实现预期的行为,应将2
属性设置为唯一值。对于对象数组,通常是key
或任何唯一属性。对于字符串数组(如果数组中的值是唯一的),可以将id
属性设置为该值。示例:
key
如果该数组中的某些值不是唯一的(如果值来自外部源-API,用户输入等,则应假定这些值),<croppa
v-for="image in images"
:key="image"
/>
属性应设置为串联值和索引。示例:
key