用v-if时报错说变量未定义
我要弄一个收藏按钮,通过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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
data, date?