Vue:用作函数参数时,无法访问我的初始数据值

时间:2019-06-20 19:37:28

标签: vue.js vue-component

在这里触发我的按钮中的点击处理程序时出现问题。当我单击按钮时,错误以TypeError: Cannot read property 'discountProduct' of null的形式返回。我知道一个事实,this.discountProduct.id可以通过从Vue工具中检查它并知道按钮是从渲染开始的,因为它仅有条件地显示id> 1.
或者,我尝试删除this,但仍然抛出相同的错误。
我还尝试了手动操作,只是将产品ID插入为参数,并且可以正常工作,所以我不确定这是什么问题。

<button v-if="this.discountProduct.id >= 1"
    type="button"
    v-on:click="addToCart(this.discountProduct.id, true)"

1 个答案:

答案 0 :(得分:0)

您是否按下了<template>标签?

如果是这样,则无需使用click参数和v-if中的this delete。但是那只会发出警告。

您还可以发布方法addToCart的代码吗?

如果您未设置完整的discountProduct对象,则需要确保将id设置为反应性。像下面的例子一样:

this.$set(this.discountProduct, 'id', 1)

嵌套对象/键在不使用$ set的情况下不起作用。有关更多详细信息,请参见https://vuejs.org/v2/guide/reactivity.html

希望这会有所帮助