项目中遇到的问题是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/