我正在使用以下函式向物件添加新的鍵/值對。
.then(response => {
this.plantRegisteredMaterials = response.data.tenantPlantMaterials.edges;
this.plantRegisteredMaterials.forEach(plantMaterial => {
this.materials.forEach(tenantMaterial => {
if (
tenantMaterial.node.id ==
plantMaterial.node.material.id
) {
tenantMaterial.node.isRegistered = true; //This is the new key I want Vue to recognize
} else tenantMaterial.node.isRegistered = false; //This is the new key I want Vue to recognize
});
});
});
該物件用作items.v-data-table
但是,當我將這個新的鍵/值對添加到物件時,Vue 無法識別它,并且v-data-table除非我單擊類似的東西Sort或其他任何強制 DOM 重新渲染的東西,否則這些更改不會被檢測到。
我知道有一些方法可以強制 Vue 識別這些變化。我應該怎么做?
我試過了JSON.parse,JSON.stringify()正如我在其他一些主題中所讀到的那樣,但它似乎不起作用。
uj5u.com熱心網友回復:
Vue 無法檢測到向物件添加新鍵。(來源)
你有兩個選擇:
1:使用添加新密鑰this.$set(tenantMaterial.node, 'isRegistered', true)
2:在將其分配給反應式 Vue 物件之前,完全構造一個普通的 Javascript 物件:
const plantRegisteredMaterials = response.data.tenantPlantMaterials.edges
plantRegisteredMaterials.forEach(plantMaterial => {
// Add, remove, change keys of plantMaterial
...
})
this.plantRegisteredMaterials = plantRegisteredMaterials
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/476126.html
上一篇:CSS影片在運行時出現在頂部
