我有一个v-for
呈现数组初始状态的列表。但是当我将项目添加到数组时,渲染不会更新。文档和此处的大多数答案都提到您必须使用this.$set
而不是array.push()
,但在我的情况下这没有帮助。
调用时addTag("thing")
,“thing”被添加到数组中,并且在 Vue 检查器中可见。只是v-for
没有更新而已。
模板
<span v-for="(tag, index) in project.tags" :key="index">
{{tag}} // this renders all the tags that are initially available
</span>
代码(vue typescript 类模板)
export default class Student extends Vue {
project:Project = {} as Project
newtag : string = ""
addTag() {
// adds to array, but v-for not updating
this.$set(this.project.tags, this.project.tags.length, this.newtag)
// adds to array, but v-for not updating
this.project.tags.push(this.newtag)
}
}
编辑此代码使用打字稿类组件