Не уверен, правильно ли я объясняю это, но я столкнулся с проблемой, когда один из моих элементов шаблона не реагирует на добавленное свойство элемента массива. Например:
<div v-for="user in users"
v-bind:key="user.id"
v-bind:name="user.name">
{{user.name}}
<div class="warn" v-if="user.hasWarning">Warning!</div>
</div>
Я пытаюсь отобразить предупреждение всякий раз, когда hasWarning: true
добавляется к user
data:() {
users: [
{id: 1, name: "Foo"}
]
},
methods:{
showWarning: function(id) {
users.forEach(user => {
if (user.id == id) {
user.hasWarning = true;
}
});
}
}
Я пытался позвонить showWarning(id)
и вижу hasWarning
добавляется пользователю как из консоли, так и из инструментов разработчика Vue, но не отображает <div class class="warn" v-if="user.hasWarning"..
. Если мой пользователь настроен как {id: 1, name: "foo", hasWarning: false}
, кажется, что он работает нормально, но почему он не работает для добавленного свойства? Стоит ли мне этого полностью избегать?