<template>
<div>
<input
type="text"
v-model="birthday"
/>
</div>
</template>
<script>
export default {
data() {
return {
date: ["y", "y", "年", "m", "m", "月", "d", "d", "日"]
};
},
computed: {
birthday: {
get() {
return this.date.join("");
},
set() {
this.date[1] = event.data;
console.log(this.date)
}
}
}
};
</script>
sf找到一个类似的提问,但是没有答案。
请问在input中输入新值的时候,date已经改变,为什么input的值不更新?computed不能监听数组吗?
恕我文档没有看全。“由于 JavaScript 的限制,Vue 不能检测数组和对象的变化”。答案是:
set() {
// this.date[1] = event.data;
this.$set(this.date, 1, event.data)
console.log(this.date)
}
this.$set(this.date, 1, event.data)