項(xiàng)目中遇到的問(wèn)題是Vue的計(jì)算屬性不觸發(fā)。(vue-property-decorator + ts)
data的值能打印,但計(jì)算屬性headerImage卻為空彻秆。
并且隨后我又去做了試驗(yàn),發(fā)現(xiàn)data的值不是響應(yīng)式的脂信,data更新,視圖卻沒(méi)有更新剥险。
計(jì)算屬性是基于它們的響應(yīng)式依賴進(jìn)行緩存的聪蘸。只在相關(guān)響應(yīng)式依賴發(fā)生改變時(shí)它們才會(huì)重新求值。
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);//有值
});
}
后面我發(fā)現(xiàn)給data賦個(gè)初始的值表制,問(wèn)題就解決了
protected get headerImage() {//能取到最新的值
return this.data && this.data.background;
}
protected data: DataProp | null = null;
getData() {
this.$utils.getData('', true).then((res) => {
this.data = res;
});
}
參考來(lái)自https://blog.csdn.net/HermitSun/article/details/90386504/