我对 vue.js 还是很陌生。我最近创建了一些 vue 组件来整理我的 html。组件是不同的输入,如text
和checkbox
。他们使用$emit('input', val)
. 并确保components
使用props
和watch()
是最新的props
。
现在使用watch()
on存在问题<input type="file />
,因为您无法像在其他输入类型上那样设置输入值。
使用这个例子:https : //jsfiddle.net/minde281/nyu73dz6/25/
在这种情况下,我有一个购物清单上的物品清单。您可以为每个项目添加图像。
图像被加载并添加到列表中。这工作正常。
要解决我的问题:
结果现在item2将在<input type="file" />
. 预览按预期工作,因为这可以通过脚本设置,因此使用watch()
. 但不知何故 vue 删除了html markup
导致最后一个被删除的错误部分。
有没有不同的方法来解决这个问题?或者有没有办法告诉 vue 删除 html 标记的正确部分?
-明德
Vue 尝试重用组件,这就是删除组件后所选文件位于第二个输入中的原因。
为了防止这种情况,您应该使用这样的键绑定:
<li v-for="(item, index) in items" :key="item.name">
现在孔组件被移除,一切都应该按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句