Vue.js检查方法中的空值或未定义值

时间:2019-05-01 17:47:25

标签: vue.js vuejs2

我不明白为什么我不能做

openAndFillModalSoin(soin)
        {
            this.show = true,   

            this.vDate = soin.date,
            this.vCategorie = soin.categoriesoin.name,
            //This can be null
            if(soin.rabaisraion){
                this.vReasonReduction = soin.rabaisraison.id;
            }

            this.vPaiement = soin.moyendepaiement.nam,
            this.vRefer = soin.referedBy,
            //This can be null aswell
            this.vGiftCard = soin.boncadeau.id,
            this.vVoucher = soin.bonreduction.id;

            this.vID = soin.id;
        },

“如果”部分不起作用,它要求输入表达式。

If in method

2 个答案:

答案 0 :(得分:1)

if(soin.rabaisraion){
                this.vReasonReduction = soin.rabaisraison.id;
            }

此代码将在以下条件不成立时运行 soin.rabaisraion是数字0,false,null,undefined或空字符串。

重申一下,字符串“ false”,字符串“ 0”和一个数组(是否为空)都是true。

此外,如果soin为null或未定义,那将是运行时错误。

也许您想要这样:

if(soin && soin.rabaisraion){
   this.vReasonReduction = soin.rabaisraison.id;
}

无论如何,请在添加日志之前先查看发生的情况:

console.log('checking soin', soin)
console.log('checking boolean soin', !!soin)
if(soin && soin.rabaisraion){
   this.vReasonReduction = soin.rabaisraison.id;
}

'!!'会将值强制为布尔值。

答案 1 :(得分:1)

您可以使用逗号而不是分号来结束上一行。