VueJs - 从列表中删除文件输入组件

记住

我对 vue.js 还是很陌生。我最近创建了一些 vue 组件来整理我的 html。组件是不同的输入,如textcheckbox他们使用$emit('input', val). 并确保components使用propswatch()是最新的props

现在使用watch()on存在问题<input type="file />,因为您无法像在其他输入类型上那样设置输入值。

使用这个例子:https : //jsfiddle.net/minde281/nyu73dz6/25/

在这种情况下,我有一个购物清单上的物品清单。您可以为每个项目添加图像。

图像被加载并添加到列表中。这工作正常。

要解决我的问题:

  • 将图像添加到item1
  • 单击 X 按钮删除该项目

结果现在item2将在<input type="file" />. 预览按预期工作,因为这可以通过脚本设置,因此使用watch(). 但不知何故 vue 删除了html markup导致最后一个被删除的错误部分

有没有不同的方法来解决这个问题?或者有没有办法告诉 vue 删除 html 标记的正确部分?

-明德

托马斯

Vue 尝试重用组件,这就是删除组件后所选文件位于第二个输入中的原因。

为了防止这种情况,您应该使用这样的键绑定:

 <li v-for="(item, index) in items" :key="item.name">

现在孔组件被移除,一切都应该按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章