как получить нужный объект массива в родительском - PullRequest
1 голос
/ 10 января 2020

В моем приложении есть родительский компонент, который запрашивает API для заполнения массива объектов. Эти объекты с различными свойствами затем передаются нескольким дочерним компонентам с v-for l oop. В дочернем компоненте я могу редактировать определенные свойства объекта через форму с вводом текста. Используя @change, я передаю это родителю, поэтому я могу отредактировать объект и отправить его в API. Тем не менее, как мне найти нужный объект в массиве?

Я мог бы oop массив в родительском объекте, чтобы найти правильный объект на основе идентификатора (одно из свойств), но это выглядит очень медленно для меня. Есть ли способ напрямую получить нужный объект? Или я делаю вызов API для обновлений в дочернем компоненте? Это кажется нелогичным, потому что родитель не узнает, что объект изменился?

1 Ответ

0 голосов
/ 11 января 2020

В пределах v-for l oop у вас есть доступ к индексу элементов в массиве

<div v-for="(item, i) in items" @change="update(item, i)"></div>

<script>
export default {
    data() {
        return {
             myArray: [{}, {}]
        }
    },
    methods: {
        update(item, i) {
            this.myArray[i] = item
        }
    }


}
</script>

https://jsfiddle.net/rfxtpua1/

...