Dalam aplikasi saya, saya mempunyai satu set kad permainan yang disimpan di kedai vuex.
Pemain mengisi pin permainan dan kod menyemaknya serta mendapatkan kad permainan untuk pin itu dan menyimpannya dalam storan dan membuka komponen memori:
checkPinExists(){ //this.$store.dispatch('retrieveGameByPin', this.enteredPin) this.retrieveGameByPin(this.enteredPin) .then(res => { this.fetchGameCards(this.currentGame.id); // als spel bestaat de bijbehorende kaarten in de store opslaan this.currentGameError = false; // dus als we hier zijn is er geen gameerror... this.checked= true; if (this.currentGame.game_status === 'actief'){ this.$router.push("memory"); } }) .catch(err => { this.currentGameError = true; console.error(err); }); }
fetchGameCrds ialah operasi vuex:
export const fetchGameCards = ({commit}, game_id) => { return new Promise((resolve, reject) => { let status = ''; let data ={}; console.log("fetching gameCards "); fetch(`api/cardsByGame/${game_id}`) .then(async res => { status = res.status; if(status === 200) { data = await res.json(); } else { data =null; } }) .then(res=>{ if ( status === 200) { commit('SET_GAME_CARDS', data); resolve('GameKaarten gevonden'); } else { reject('Geen gamekaartenkaart beschikbaar'); } }); }); }
Dalam komponen memori, kad diambil dan permainan bermula. Malangnya saya tidak dapat mendapatkan kad permainan dari kedai tepat pada masanya.
Dalam anak tetingkap pembangun penyemak imbas, saya nampak kad itu ada di dalam kedai.
Memoryscript bermula dengan beberapa mesej nyahpepijat:
<script> import { mapState, mapActions } from 'vuex'; export default { mounted() { console.log("at mounted show GameCards:"), console.log(this.gameCards); this.createDeck(), this.createShowCards() }, computed: { ...mapState([ 'currentSpeler' ,'currentSpelerCard', 'currentGame', 'gameCards' ]),
Output dalam konsol kelihatan seperti:
at mounted show GameCards: [Handler]]: Array(0) length: 0
Bolehkah sesiapa melihat bagaimana saya boleh menyelesaikan masalah ini?
Saya tidak mahu mendapatkan kad dalam komponen itu sendiri kerana saya juga mahu menggunakan kad permainan dalam komponen lain dan bukannya mendapatkannya dari bahagian belakang setiap kali.
Jika ia tidak diisi semasa komponen dipasang
gameCards
数组,您可以使用 观察者 在gameCards
jalankan fungsi anda apabila ia benar-benar sedia untuk digunakanPemerhati akan sentiasa berjalan apabila nilai tatasusunan baharu diperuntukkan, tetapi seperti yang ditunjukkan oleh contoh kod saya, anda boleh menggunakan logik berdasarkan nilai tatasusunan lama dan baharu yang dimasukkan untuk mengawal sama ada pemerhati benar-benar melakukan apa-apa. p>
Walaupun secara lalai pemerhati hanya berjalan pada pengagihan semula lengkap tatasusunan yang diperhatikan, anda boleh menggunakan pemerhati kedalaman jika anda perlu.