1 回答

TA貢獻1936條經驗 獲得超7個贊
您必須使用該方法this.$set
來注冊新屬性。請參閱文檔:https ://v2.vuejs.org/v2/api/#vm-set
嘗試這樣的事情:
<template>
<div>
<div v-for="user in users" v-bind:key="user.id" v-bind:name="user.name">
{{ user.name }}
<button @click="showWarning(user.id)">showWarning</button>
<div class="warn" v-if="user.hasWarning">Warning!</div>
</div>
</div>
</template>
<script>
export default {
name: 'App',
data: () => ({
users: [{ id: 1, name: 'Foo' }, { id: 2, name: 'Bar' }],
}),
methods: {
showWarning(id) {
let user = this.users.find(user => user.id == id);
this.$set(user, 'hasWarning', true);
},
},
};
</script>
添加回答
舉報