Я новичок в vue. Мне недавно нужно передать класс в качестве реквизита для компонента. Как показано ниже:
<my-component v-for="(name, index) in Names" :key="'name-' + index " :person="new Person(name)"></my-component>
Лицо, как показано ниже:
class Person {
constructor(name) {
this.name = name
}
}
Имена - это данные с сервера. Проблема заключается в том, что я обновляю имя, используя this.$props.person.name = 'Ken'
, он не изменяется. Я смотрю на $props.person
, он пропустил __ob__: Observer
. Пожалуйста помоги!!!
Возможно, это помогает:
<my-component v-for="(person, index) in persons" :key="'name-' + index " :person="person"></my-component>
this.names.forEach(name=>this.persons.push(new Person(name));
Другие вещи...
Если ваше имя уникально для человека, используйте его в своем ключе, а не в индексе, или даже лучше, добавьте поле идентификатора для персонализации для оптимизации вставок, удалений и т.д.
Вы также можете поместить свои имена в состояние и отреагировать на изменения, добавив людей в функцию часов.
Возможно, вы захотите сделать глубокие часы внутри своего компонента. Однако этот код не был опубликован.
:key
введите вашv-for
?