用v-if时报错说变量未定义

发布于 2022-09-07 03:23:44 字数 835 浏览 45 评论 0

我要弄一个收藏按钮,通过click事件来控制collected的值,从而通过v-if根据collected的值来显示不同的图片

//伪代码

<div class="option collect" @click="collect()">
  <img src="../assets/images/favor_fill.png" v-if="collected">
  <img src="../assets/images/favor2.png" v-else>
  <span>收藏</span>
</div>

date () {
  return {
    collected:false
  }
},
methods: {
  collect:function() {
    this.collected = !this.collected
  }
}

当我执行上述代码时会有如下报错:
图片描述
就是说我collected没有定义,可是我明明在data里面定义了啊。如果我在created里面定义collected就不会报错:

created() {
      this.collected = false
    }

所以我猜v-if在起作用时data里面的变量其实还没有开始定义,所以v-if根本不知道collected是什么。不知道我的猜想正不正确。还有不管collected的值怎么改变显示的都是v-else那张图,是不是因为v-if只判断一次collected的值?要实现收藏按钮的功能这代码要怎么改呢

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

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

发布评论

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

评论(2

忘年祭陌 2022-09-14 03:23:44

data, date?

溇涏 2022-09-14 03:23:44

clipboard.png

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