【问题标题】:How to assign the value inside the if condition in vue?如何在vue中分配if条件内的值?
【发布时间】:2020-08-26 08:27:46
【问题描述】:

我不知道 vue 是否认得下面的语法:

if(var error = errors.description){
    location.href = "/redirect?topic="+error;
}

上面的代码返回编译错误:

./resources/js/forms/Signup.vue?vue&type=script&lang=js& 中的错误 (./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib ??vue-loader-options!./resources/js/forms/Signup.vue?vue&type=script&lang=js&)

有人知道如何在 if else 条件中分配一个变量吗?

【问题讨论】:

  • Vue 只是 JavaScript。您提供的代码不是有效的 JavaScript。为什么不直接将赋值移到前一行,然后测试if (error) {
  • @skirtle 我试图最小化一行。就像在 php 中一样 hashbangcode.com/article/….

标签: vue.js vuejs2


【解决方案1】:

这是一个 JavaScript 语法问题,而不是 Vue。虽然我强烈建议不要在条件内赋值,但您只能通过提前声明变量或根本不显式声明它来做到这一点,即删除上面的 var

这是上面代码的示例:

if(error = errors.description){
    location.href = "/redirect?topic="+error;
}

要明确一点,强烈建议不要执行上述操作,或者至少提前声明var error,以免意外修改全局变量,如下所示:

let error;
if(error = errors.description){
    location.href = "/redirect?topic="+error;
}

当然,避免混淆分配的最明确和安全的解决方案是简单地提前完成:

let error = errors.description;
if (error) {
    location.href = "/redirect?topic="+error;
}

有一些discussion 关于在条件句中赋值是否是好的做法。然而,在一个完全独立的注释中,人们普遍认为分配尚未使用 varletconst 声明的变量是危险的,因为您可能会意外修改更大范围的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 2018-09-03
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2016-03-08
    • 2019-06-06
    相关资源
    最近更新 更多