Vue.js 2.0 为什么有时双向绑定img src属性会失败?

正在使用vue.js 2.0 进行单文件组件式开发

这段代码是需要进行动态改变img src属性的html

<img :src="pictureUrl" v-show="showHead" class="head-profile pull-left" />

这个是单文件的私有属性:

data(){

    return {
        ...
        showHead:true,
        pictureUrl:null,
        ...
    }
  }

这个是动态改变src属性的method

createImage(file) {

var reader = new FileReader();
var vm = this;
reader.onload = (e) => {
    //图片url
    vm.pictureUrl = e.target.result;
};
    reader.readAsDataURL(file);

},

经打印,属性pictureUrl 经过了上面的method之后就改变了url,但是html里的img :src属性却没有显示出来,也就是没有双向数据响应???
ps:url 是base64编码的值 也就是很长。

但是我在另一个上传组件的时候却又是可以的,请问各位vue使用者有没遇到过这个问题啊?

回复第一位回答者的问题:就是this.pictureUrl 的值已经改变了,但是在:src="pictureUrl" 没有改变 还是为null

阅读 5.3k
5 个回答

粗看下感觉做法没什么问题,到 codepen 之类的地方最简重现一下吧。

扯个题外话,用 arrow function 就不用保留 vm 引用了。

新手上路,请多包涵

vm=this这步可以省掉,你用了箭头函数了,不用存this了

新手上路,请多包涵

你好,我也遇到了这个问题,请问你怎么解决的

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