Я пытаюсь скопировать массив в другой массив, и я получаю эту ошибку:
[Vue warn]: Ошибка при рендеринге: "TypeError: Невозможно прочитать свойство 'name' изundefined "
Мой код:
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);
});
Iполучаю ошибку:
Ошибка в смонтированном хуке: «Ошибка типа: невозможно прочитать свойство« translations »of undefined»
Но это работает:
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;
Хотя таким образом мой массив языков стал таким же, как и массив переводов, что мне не нужно.
Что я делаю не так?