它的作業原理是這樣的:我有一個用 Vue 制作的表格,在那里我有一些選擇選項。當我有一個組(組)并且該組與 maquina(機器)無關時會出現此錯誤,這是不應該發生的,目的是只出現“-”。在控制臺中引發錯誤并且未顯示在我的資料表中。
錯誤: [/Vue warn]: Error in render: "TypeError: Cannot read properties of undefined (reading 'id_area')
這是我認為導致此錯誤的代碼部分:
computed: {
linhas () {
return this.lista.map(row => {
const group = this.grupos.find(g => g.id === row.id_grupo);
const machine = this.maquinas.find(m => m.id === group.id_maquina);
const area = this.areas.find(a => a.id === machine.id_area);
return ({
href: {path: this.editRoute row.id},
cols: [
row.id,
row.tag,
row.descricao,
row.tipo === "ANALOGICA" ? "Analógica" : "Digital",
group.nome,
(machine || { nome: "-" }).nome,
(area || { nome: "-" }).nome
]
});
});
}
},
有人能幫我嗎?我不明白為什么會發生這種情況。
uj5u.com熱心網友回復:
undefined如果未找到該值,則array.find() 方法回傳(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)。
因此,如果沒有group.id_maquina從前一行檢索到id 的“machina”,則該行將const machine = this.maquinas.find(m => m.id === group.id_maquina);值設定undefined為machineconst。
這是您發生的錯誤:id_area從中讀取machine未定義。
所以你必須檢查你的變數是否在之后未定義 array.find()
//...
const group = this.grupos.find(g => g.id === row.id_grupo);
if (group) {
const machine = this.maquinas.find(m => m.id === group.id_maquina);
if (machine) {
const area = this.areas.find(a => a.id === machine.id_area);
}
}
//...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/359403.html
標籤:javascript 节点.js Vue.js Vuejs2 数据表
