Size: a a a

Vue.js Russian Developers Community

2021 January 18

E

Eugene in Vue.js Russian Developers Community
Алексей
Всем добрый вечер:)
Делаю SPA.
Подскажите, пожалуйста, как передать данные из App.vue (родитель) в Contact.vue (дочерний)?
Имеется массив, contactData - список контактов, при нажатии на контакт надо скрывать общий список и открывать данные контакта.
В этом новом окне можно редактировать данные контакта - на счет редактирования и записи идеи есть, но как изначально туда передать данные?
источник

А

Алексей in Vue.js Russian Developers Community
но у меня почему-то ругается - ошибку выдаёт на него. Пишет, что массив undefined
источник

VK

Vladislav Kharlanchu... in Vue.js Russian Developers Community
Какой массив?
источник

A

A A in Vue.js Russian Developers Community
Алексей
но у меня почему-то ругается - ошибку выдаёт на него. Пишет, что массив undefined
По коду же видно, что не передаете в пропсы
источник

А

Алексей in Vue.js Russian Developers Community
<template>
 <div class="wrapper">
   <div v-for="(contact, index) in contactData" @key="index" class="row">
       <div>
         {{ contact.name }}
       </div>
   </div>

   <div></div>
 </div>
</template>

<script>
export default {
 props:['contactData'],
 data() {
   return {

   };
 },
};
</script>

вот код для Contact.vue (template - заготовка только)
источник

А

Алексей in Vue.js Russian Developers Community
на странице в итоге пусто
источник

c

chaotik in Vue.js Russian Developers Community
ппрблема еще в том, что непонятно, данные какого контакта отображать
источник

А

Алексей in Vue.js Russian Developers Community
в app.vue метод есть для этого (в консоль выводит корректно)
openContact(index) {
     let contact = this.contactData[index];
   }
источник

c

chaotik in Vue.js Russian Developers Community
contact существует только внутри функции
источник

c

chaotik in Vue.js Russian Developers Community
тогда this.contact=...
источник

c

chaotik in Vue.js Russian Developers Community
и пропом передавать this.contact
источник

c

chaotik in Vue.js Russian Developers Community
либо передавать индекс и весь массив
источник

c

chaotik in Vue.js Russian Developers Community
или событию передавать аргументом контакт
источник

c

chaotik in Vue.js Russian Developers Community
show-contact которое
источник

А

Алексей in Vue.js Russian Developers Community
что-то я не так делаю видать, раз у меня ничего не отображает.
пытаюсь уже передавать this.contact, но ничего не рисует в итоге, кроме статики
источник

c

chaotik in Vue.js Russian Developers Community
попробуй обьект передать просто
источник

c

chaotik in Vue.js Russian Developers Community
где в компоненте вообще проп для контакта?
источник

А

Алексей in Vue.js Russian Developers Community
в app.vue передаю методом
openContact(index) {
     let contact = this.contactData[index];
     this.contact = contact;
}
в contact: {},
источник

А

Алексей in Vue.js Russian Developers Community
а этот this.contact уже в пропе в contact добавлен
источник

Д

Дима in Vue.js Russian Developers Community
Алексей
в app.vue передаю методом
openContact(index) {
     let contact = this.contactData[index];
     this.contact = contact;
}
в contact: {},
что за @key ? откуда Index ? где openContact ?)
источник