VueJS:显示从计算 属性 返回的 PromiseResult 的内容

VueJS: Show content of PromiseResult that is returned from computed property

我计算了 属性,如下所示 returns res,其中 res 是一个 Promise 对象。我无法在 created()mounted() 挂钩中包含此脚本的原因是,当我这样做时 this.selectedObjectnull

我对 res 很满意,但是,当我需要在 html 中渲染 PromiseResult 时,问题就来了:<div>{{ currentDepStatus }}</div>。这显示 [Promise object] 而不是 PromiseResult 的内容。任何帮助将不胜感激。

  computed: {
    currentDepStatus() {
      let res = '';
      if (!this.selectedObject) return [];
      const deps = this.depCategory(this.selectedObject.id);
      if (deps.length > 0) {
        res = sendDepStatus(deps);
      }
      return res;
    },

这是一个 anti-pattern 说明您想要如何做到这一点。 computed 属性需要简单 getters 才能嵌套反应值。任何外部操作都应在 methods

看到你的问题后,我将按照以下方式解决。

data() {
  currentDepStatus: []
}
watch: {
 async selectedObject() {
   if (this.selectedObject) {
      const deps = this.depCategory(this.selectedObject.id);
      if (deps.length > 0) {
        this.currentDepStatus = await sendDepStatus(deps);
      }
    }
  }
}

<div>{{ currentDepStatus }}</div>