Pinia InternalError: terlalu banyak ralat rekursi apabila menggunakan q-list dalam Quasar
P粉262073176
2023-09-01 20:26:11
<p>Semasa menggunakan Pinia Store dalam komponen Quasar saya, saya mengalami ralat ini <kod>Ralat Dalaman: Terlalu banyak rekursi</kod> </p><p>
Bolehkah saya mendapatkan nasihat di sini? </p>
<p>Ini ialah <kod>IndexPage.vue</code> tempat saya memanggil komponen QList: </p>
<pre class="brush:php;toolbar:false;"><template>
<q-halaman>
<div class="q-pa-md"style="lebar maksimum: 350px">
<QList />
</div>
</q-page>
</template>
<skrip>
import QList daripada 'src/components/QList.vue';
eksport lalai {
komponen: {
QList
}
}
</script></pre>
<p>Ini adalah komponen <kod>QList.vue</code>
<pre class="brush:php;toolbar:false;"><template>
<div v-if="memuatkan">Carregando...</div>
<q-senarai v-pemisah bersempadan lain>
<q-item v-for="item dalam testData" :key="item.id" v-riak boleh klik>
<q-item-section>{{ item.title }}</q-item-section>
</q-item>
</q-list>
</template>
<skrip>
import { testeStore } daripada '../stores/teste'
import { defineComponent, computed, onMounted } daripada 'vue';
eksport lalai defineComponent({
persediaan () {
const store = testeStore();
onMounted(() => {
store.loadData();
});
const testData = dikira(() => store.getData());
const loading = dikira(() => store.$state.loading);
kembali {
testData,
memuatkan
}
}
})
</script></pre>
<p>还有我的 <code>testeStore.js</code> 商店:</p>
<pre class="brush:php;toolbar:false;">import { defineStore } daripada 'pinia'
import testeData daripada '../assets/data/testes.json'
eksport const testeStore = defineStore({
id: 'teste',
nyatakan: () => ({
data: [],
memuatkan: palsu,
}),
pengambil: {
getData: negeri => state.data,
},
tindakan: {
loadData () {
cuba {
this.loading = benar
this.data = testeData;
} tangkap (ralat) {
console.log(`Ralat mengambil ujian: ${{ ralat }}`)
} akhirnya {
this.loading = palsu
}
}
}
})</pre>
<p>每个组件看起来都很正常,我真的不知道我的问题出在哪里。这是来自控制台的一段 vue amaran:</p>
<pre class="brush:php;toolbar:false;">[Vue warn]: Ralat tidak dikendalikan semasa melaksanakan flush penjadual. Ini berkemungkinan pepijat dalaman Vue. Sila buka isu di https://new-issue.vuejs.org/?repo=vuejs/core
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" >
di <Kunci QList=1 bersempadan="" pemisah="" ></pra></p>
Baru sahaja menyemak stackblitz dan nampaknya terdapat konflik penamaan antara komponen QList anda sendiri dan komponen "q-list" terbina dalam Quasar. Vue memperlakukan nama komponen secara tidak sensitif huruf, itulah sebabnya ia mentafsirkan "senarai-q" dan "QList" sebagai komponen yang sama.
Untuk menyelesaikan masalah ini, anda boleh cuba menamakan semula komponen QList anda kepada nama lain yang tidak bercanggah dengan komponen Quasar, seperti "MyQList", atau gunakan alias untuk mengimport komponen "q-list" Quasar.
从 'quasar' 导入 { Qlist as QuasarList }