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框里随便输点什么,图片就会出来了
你那样写 Vue 监听不到变化,需要这样。