<template>
<div v-for="corpus in getCorpora" v-bind:key="corpus.id">
<Corpus v-bind="corpus" />
</div>
</template>
<script>
import Corpus from "../components/Corpus";
import { mapGetters } from "vuex";
export default {
computed: {
...mapGetters(["getCorpora"]),
},
created() {
this.$store.dispatch("fetchCorpora");
},
components: {
Corpus,
},
};
</script>
这段代码有什么问题?我试图让组件数据在我输入新数据时动态显示。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果
getCorpora已更新/响应,您的代码应该可以正常工作。我刚刚创建了一个演示,您可以看一下并尝试找出您所面临问题的根本原因吗?演示(我刚刚添加了一个输入,并且在模糊时,输入值已添加到 getCorpora 数组中):
Vue.component('corpus', { props: ['childmsg'], template: '<p>{{ childmsg }}</p>' }); var app = new Vue({ el: '#app', data: { corpus: '', getCorpora: [{ id: 1, name: 'Corpus A' }, { id: 2, name: 'Corpus B' }, { id: 3, name: 'Corpus C' }] }, methods: { addCorpus() { if (this.corpus) { const index = this.getCorpora.at(-1).id + 1 this.getCorpora.push({ id: index, name: this.corpus }) } } } });<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> Add corpus : <input type="text" v-model="corpus" @blur="addCorpus"> <div v-for="corpus in getCorpora" v-bind:key="corpus.id"> <Corpus :childmsg="corpus.name"></Corpus> </div> </div>