vue.js 有没有可能让一个计算属性变得懒惰

ubof19bj  于 2023-08-07  发布在  Vue.js
关注(0)|答案(1)|浏览(126)

如下面贴出的代码所示,在compPropsIsBtnDigitizePolygonDisabled中,它首先检查digitizePolygonInteractions是否初始化,如果没有初始化,将抛出错误。
在执行时,最初,digitizePolygonInteractions还没有初始化,并且compPropsIsBtnDigitizePolygonDisabled表现得好像它是渴望的而不是懒惰的,因此总是抛出错误,因为在计算机属性执行时,digitizePolygonInteractions还没有初始化。
我的问题是:1-是否有可能使compPropsIsBtnDigitizePolygonDisabled懒惰而不渴望? 2-如何在抛出的错误中显示digitizePolygonInteractions`的值

编码

computed: {
    compPropsIsBtnDigitizePolygonDisabled() {
        if (digitizePolygonInteractions) {
            if (isBtnDigitizePolygonClicked.value == true) {
                digitizePolygonInteractions.remove();
                return values.CONST_STRING_DIGITIZE;
            } else {
                digitizePolygonInteractions.add();
                return values.CONST_STRING_STOP_DIGITIZE;
            }
        } else {
            throw new Error('WTF.digitizePolygonInteractions is:', digitizePolygonInteractions)
        }
    },
}

字符串

gywdnpxw

gywdnpxw1#

有没有可能使compPropsIsBtnDigitizePolygonDisabled懒惰而不渴望? 理想情况下,Vue中的计算属性在默认情况下是急切的,但要使其成为lazy,您可以一起使用数据propertywatcher`。
示例**:**

data() {
  return  {
    isComputedPropertyInitialized: false
  }
},
computed: {
  compPropsIsBtnDigitizePolygonDisabled() {
    if (!this.isComputedPropertyInitialized) {
      return;
    } else {
      // You can add your logic here
    }
  }
},
watch: {
  digitizePolygonInteractions(value) {
    if (!this.isComputedPropertyInitialized && value) {
      this.isComputedPropertyInitialized = true;
    }
  }
}

字符串
如何在抛出的错误中显示digitizePolygonInteractions的值?
您可以通过在Error函数调用中使用+运算符来串联错误。

throw new Error('WTF.digitizePolygonInteractions is: ' + digitizePolygonInteractions)

相关问题