@AfterGen

Почему v-model на компоненте при изменении поля input не обновляет данные?

Рассматриваю такой пример из документации. Почему при изменении поля input данные не обновляются и в родителе и в компоненте?

Результат:

62e0e9d4c52e6871592289.png
Код вызова компонента:

<template>
  <div id="app">
    <p>Родительское значение {{ user }}</p>
    <edit-users v-model:user="user" />
  </div>
</template>

data() {
  return {
    user: "Abc"
  };
}

Код определения компонента:

<template>
  <div>
    <input 
      type="text" 
      :value="user" 
      @input="$emit('update:someUser', $event.target.value)"
    />
    <p>Дочернее значение {{ user }}</p>
  </div>
</template>

props: {
  user: String
},
emits: ["update:someUser"]
  • Вопрос задан
  • 344 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
props: {
  user: String
},
emits: ["update:someUser"]

Это неверно. Имя события надо привести в соответствие с именем параметра, исправляем:

- emits: ["update:someUser"]
+ emits: ["update:user"]

- @input="$emit('update:someUser', $event.target.value)"
+ @input="$emit('update:user', $event.target.value)"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы