lista kontaktów w Vue - dodanie nowych właściwości do każdego kontaktu

0

witam, mam prostą listę kontaktów, a w niej obiekty, które dodaję tak:

const addContact = ({ id, name, email }) => {
  contactList.value.push({ id, name, email });
};

To jest proste ale chciałbym poszerzyć funkcję mojej listy kontaktów o możliwość dodania jakiś opisów do kontaktu, np: "ma do oddania książkę" albo "pożyczył ode mnie 10 zł xD" i się zastanawiam czy nie byłoby lepiej stworzyć normalnej klasy jak w C++ (class Contact)

chyba, żebym zagnieździł tablicę wewnątrz: { id, name, email, tasks: [{id, title, description}] }.

0

Jak to Vue 3 z tego co widzę i nie używasz Vuexa, to najlepiej chyba wyrzucić tą logikę do composables i dodać tam funkcję addDescription.

0

Co to ma wspólnego z vue?

0

cześć, problem dalej aktualny, po prostu chciałbym dodać np. do osoby Ernest dodatkowe dane, w tym przypadku task:

[
  { id: "123123123", name: "Damian", email: "[email protected]" },
  { id: "232232312", name: "Ernest", email: "[email protected]", tasks: [{ id: "jkdu2j82j", title: "Oddaj ksiazke", description: "pozyczyl ksiazke i nie oddal!"}] },
  { id: "1232522z4", name: "Kamila", email: "[email protected]" },
]

próbuję kombinować z findIndex i splice ale na razie nie mam pomysłu

edit: ok, znalazłem sposób, wystarczy za pomocą funkcji find znaleźć obiekt, a potem go modyfikować:

 const addTask = (contactID, { id, title, description }) => {
    const contact = contactList.value.find(
      (contact) => contact.id === contactID
    );

    contact.tasks = [...contact.tasks, { id, title, description }];
  };

1 użytkowników online, w tym zalogowanych: 0, gości: 1