我试图将数组复制到另一个数组并且我收到了这个错误:
[Vue警告]:渲染错误:" TypeError:无法读取属性' name' 未定义"
我的代码:
props: {
languages: {
required: true,
},
},
data() {
return {
translations: [],
}
},
mounted() {
this.setTranslations();
},
methods: {
setTranslations() {
this.translations = this.languages.slice(0);
}
},
同样的结果:
this.translations = this.languages
和
let temp = this.languages.slice(0);
this.translations = temp;
修改
如果我评论该行:
// this.translations = this.languages.slice(0);
错误消失。
这也不起作用:
this.languages.forEach( function (item) {
this.translations.push(item);
});
我收到错误:
挂钩错误:" TypeError:无法读取属性'翻译' 未定义"
但这有效:
let temp = this.languages.slice(0);
temp.forEach( function ( lang ) {
Vue.set(lang, 'value', {});
Vue.set(lang.value, 'name', "");
Vue.set(lang.value, 'metaKeywords', "");
Vue.set(lang.value, 'metaDescription', "");
});
this.translations = temp;
虽然这样我的语言数组变得和翻译数组一样,但这不是我想要的。
我做错了什么?
答案 0 :(得分:0)
实际上这个错误来自模板。模板取决于" name"在我的翻译数组。它找不到它。这就是我最后一段代码的原因。 我不知道为什么在我评论数组拷贝行时控制台没有显示错误。它应该显示相同的错误。