TypeScript显式赋值断言导致Vue属性非响应

项目中遇到的问题是Vue的计算属性不触发。(vue-property-decorator + ts)
data的值能打印,但计算属性headerImage却为空。
并且随后我又去做了试验,发现data的值不是响应式的,data更新,视图却没有更新。

计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。

  protected get headerImage() {
    return this.data && this.data.background;
  }

  protected data!: DataProp;
  getData() {
    this.$utils.getData('', true).then((res) => {
      this.data = res;
      console.log(this.data);//有值
    });
  }

后面我发现给data赋个初始的值,问题就解决了

 protected get headerImage() {//能取到最新的值
    return this.data && this.data.background;
  }

  protected data: DataProp | null = null;
  getData() {
    this.$utils.getData('', true).then((res) => {
      this.data = res;
    });
  }

参考来自https://blog.csdn.net/HermitSun/article/details/90386504/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容