Heim > Fragen und Antworten > Hauptteil
<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>
Was stimmt mit diesem Code nicht? Ich versuche, die Komponentendaten dynamisch anzuzeigen, wenn ich neue Daten eingebe.
P粉2040797432023-09-13 10:18:27
如果 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>