Вю "родитель-ребенок" функцию emit нарушает V-модели обязательного

Вю "родитель-ребенок" функцию emit нарушает V-модели обязательного

27.01.2020 09:06:50 Просмотров 21 Источник

Работа над исправлением ошибки в чужом коде, поэтому я пытаюсь ограничить то, что я должен изменить здесь.

Похоже, когда я использую $emit

Затем имеется дочерний компонент:

ChildComponent.вю

<template>
    <child-component v-bind:items="this.items"
                     v-on:event_child="this.eventUpdater">
    </child-component>
<template>
<script>
    import ChildComponent from './ChildComponent.vue';
    export default {
        components: {
            'child-component': ChildComponent
        },
        methods: {
            getItemDetails() {
                //...ajax request that loads item details for page.
            },
            eventUpdater: function(id) {
                this.getItemDetails();
            }
        }
    }
</script>

После обновления моего первоначального элемента (который обновляет нормально), я иду обновить другой элемент, и кажется, что v-модель для этого элемента не работает. Нарушает ли функциональность <template> <div v-for="item in items"> <input v-model="item.itemId"> </div> <button v-on:click="updateItems">update</button> </template> <script> export default { props: ['items'], methods: { updateItems() { //...ajax call that updates items. this.emitWhat(); }, emitWhat: function () { this.$emit('event_child'); } } } </script> привязку v-модели после первоначальной загрузки? Как мне это исправить?

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59936603/vue-parent-child-emit-function-is-breaking-v-model-binding#comment105995069_59936603
Я не вижу автобуса для мероприятий, где он находится
https://stackoverflow.com/questions/59936603/vue-parent-child-emit-function-is-breaking-v-model-binding#comment105995145_59936603
@Ifaruki - я злоупотреблял этим термином. Я вынул его из кармана. Мое извинение.

Ответы - Вю "родитель-ребенок" функцию emit нарушает V-модели обязательного / Vue parent-child emit function is breaking v-model binding

Является ответом!
webprogrammer

27.01.2020 10:35:12

Вы используете это:

    <child-component v-bind:items="this.items"
                 v-on:event_child="this.eventUpdater">

но стоит воспользоваться этим:

<child-component v-bind:items="items"
    v-on:event_child="eventUpdater">

Убрал this..

Также я не нашел itemsв качестве dataпараметр id в id, вы должны eventUpdater: function(id)его следующим образом:

emit

Upd.Два

Также у вас есть v-образная модель на <template> <div v-for="item in items"> <input v-model="item.itemId"> </div> <button v-on:click="updateItems(item.itemId)">update</button> </template> updateItems(id) { //...ajax call that updates items. this.emitWhat(id); }, emitWhat: function (id) { this.$emit('event_child', id); } , который может быть проблемой:

item.itemId

Вы могли бы рассмотреть возможность привязки <input v-model="item.itemId"> к v-modelкак это:

newItems
Закрыть X