v-bind:src不能成功渲染

发布于 2022-09-11 16:54:11 字数 518 浏览 8 评论 0

比如我一个页面的初始化数据里定义一个空对象

 data () {
      return {
        community: {},
      }
    },

而我的<img>标签的写法是

 <img class="uploadImageDiv" mode="aspectFill" :src="community.avatarUrl"/>

当我第一次给community赋值的时候

this.community.avatarUrl = 'XXXXX.png'

讲道理img标签会立即渲染吧? 但是并没有。为什么呢?
估计跟我定义了一个对象有关? 因为我如果直接在data里定义一个avatarUrl='XXXXX.png'且 <img class="uploadImageDiv" mode="aspectFill" :src="avatarUrl"/>的时候是可以直接渲染的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

因为压根没有观察community.avatarUrl这个属性。
set

  community: {
    avatarUrl:''
    },

或者

this.community= {avatarUrl :'XXXXX.png'}
绅刃 2022-09-18 16:54:11

没渲染出来 说明你讲道理没有跟vue讲通,1.直接在data定义img的src的路径,2.如果想this.community.avatarUrl这种方法,请查看vue新增对象的响应式怎么写

沦落红尘 2022-09-18 16:54:11
this.$set(this.community,"avatarUrl","xxx.png")

vue监测不到对象新增属性,要不就再定义的时候就定义号 如同楼上写的
文档里都有。。

能怎样 2022-09-18 16:54:11

没渲染出来 说明你讲道理没有跟vue讲通

绅士风度i 2022-09-18 16:54:11

由于 JavaScript 的限制,Vue 不能检测对象属性的添加或删除
正确的写法
this.$set(this.community,'avatarUrl', 'XXXXX.png');

一个人练习一个人 2022-09-18 16:54:11

多谢各位大佬! 很清楚!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文