vue数据不能同步

html

<el-upload class="avatar-uploader" action="111" :before-upload="beforeAvatarUpload" />  
 <img v-if="form.logo" :src="form.logo" class="avatar" />  
 <i v-else class="el-icon-plus avatar-uploader-icon" /></i>
</el-upload>

js

beforeAvatarUpload(file) {  
  let fd = new FormData();  
  fd.append('file',file); //传文件  
  uploadLogo(fd).then((res)=>{  
    if(res.status == "success"){ 
  this.form.logo = "http://api.xunmi.com"+res.data.url;  
  }else if(res.status == "error"){  
      this.$message({  
        message: res.msg,  
  type: 'error'  
  })  
    }  
  })  
  return false;  
}

如上代码,我想要的效果是上传返回成功后直接替换 form.logo 的值,同时页面上显示出图片,
实际问题是页面上图片并不会显示出来,我改一下其他 form 的值图片才能显示出来。
比如除了头像,我还有姓名,上传头像后并不会显示出来,我把姓名在input框里随便输点什么,图片就会出来了

阅读 1.9k
1 个回答

你那样写 Vue 监听不到变化,需要这样。

this.$set(this.form,'logo','新 lgoo')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题