1、问题出现
我用v-for循环,里面包括a-input节点,但每次按输入或者删除键,都会失去焦点,不能连贯输入就很懊恼!!
2、问题猜想
可能是因为代码中哪里触发了render,使组件进行重新渲染,所以输入框自然就失去了焦点。
3、解决方法
最终还是代码问题,v-for循环里的 key 值是包括a-input的输入的内容,每输入一个字符,key就会改变,引发render重新渲染。
<span v-for="(key, value) in entity_item"
:key="key"
v-show="value === columns_item.model" >
<a-input v-model="entity_item[columns_item.model]" />
</span>
只要把key变成常量就可以了
<span v-for="(key, value) in entity_item"
:key="value"
v-show="value === columns_item.model" >
<a-input v-model="entity_item[columns_item.model]" />
</span>
4、结论
写代码要注意:v-for的key是否是可改变的,并且该key值与你所输入的控件绑定或会被该控件间接影响。