Heim > Fragen und Antworten > Hauptteil
Ich versuche derzeit, das Lesen von Arrays mit Vue zu implementieren:
{{ this.locations[this.record.carton.LocationID - 1].Location }}
Während der Code selbst zur Laufzeit einwandfrei funktioniert, gibt er beim ersten Laden den folgenden Fehler aus:
app.js:55125 [Vue warn]: Error in render: "TypeError: Cannot read properties of undefined (reading 'Location')" app.js:56401 TypeError: Cannot read properties of undefined (reading 'Location') at Proxy.render (app.js:49569:28) at VueComponent.Vue._render (app.js:58068:22) at VueComponent.updateComponent (app.js:58580:21) at Watcher.get (app.js:58994:25) at new Watcher (app.js:58983:12) at mountComponent (app.js:58587:3) at VueComponent.Vue.$mount (app.js:63593:10) at VueComponent.Vue.$mount (app.js:66507:16) at init (app.js:57639:13) at merged (app.js:57824:5)
Ich habe versucht, den Wert von „Standort“ auf diese Weise zu initialisieren, aber es scheint nicht zu helfen
return { data() { return { locations: { Location: '' }, } } }
P粉0943518782024-04-04 11:16:41
解决问题的通用方法是设置默认值或防护或两者都设置。
默认 - 就像您尝试过的那样,除了数组之外,并注意索引表达式计算出默认索引...
return { data() { return { locations: [{ Location: '' }], record: { carton: { LocationID: 1 } } } } }
但这似乎有点做作且脆弱。另一种方法是使用 v-if 保护标记...
{{ locations[record.carton.LocationID - 1].Location }}
该表达式涉及的内容足以保证将其放入方法中。