使用了$set后input还是没有更新
先看一下是什么情况下视图没有更新:
<template>
<div>
<input type="text" v-model="myInfo.name">
</div>
</template>
<script>
export default {
data(){
return {
myInfo:{}
}
},
mounted(){
this.setInfo();
},
motheds:{
setInfo(){
this.myInfo = {
name:'laolian',
age:25,
address:'beijing'
}
}
}
}
</script>
以上的情况,如果再次改变myInfo.name的值,iniput显示没有更新,motheds中添加改变name值的方法
setMyName(){
setTimeOut(()=>{
this.$set(this.myInfo,'name','');//给input赋空值
},1000);
}
mounted(){
this.setInfo();
this.setMyName();//给input赋空值,但是1秒后input显示没有变为空
}
重点来了,解决这种情况也很简单,声明变量时添加上你绑定的属性就可以了:
data(){
return{
myInfo:{
name:''
}
}
}
同理,其他属性也是这样解决同样的问题,就是这么简单