Voor een eigen project probeer ik de data in mijn store van Vuex te tonen in een component.
Deze eenvoudige denkwijze lijkt niet op te gaan wanneer de state muteer via een async action.
Nou hoop ik dat iemand snel de doorn weet te vinden.
Om alles wat leesbaarder te maken deel ik even een gestripte versie van mijn code.
Bij het laden van een parent component stuur ik een dispatch.
Ik probeer vervolgens de store te raadplegen in een child component
Ik zie dus dat de store wordt geupdate (door elke stap te loggen)
Maar dat mijn resume.vue eerder opgebouwd is waardoor hij "te vroeg" is met het uitpoepen van de store.state
Echter dacht ik te begrijpen dat het reactive was (wat ik ook zie), maar het blijft een lege Array.
Ik heb het ook geprobeerd met, wat mij ook geen ander resultaat geeft
Ik hoop dat iemand hier direct ziet welke domme fout ik maak...
Alvast daarvoor enorme dank!
Deze eenvoudige denkwijze lijkt niet op te gaan wanneer de state muteer via een async action.
Nou hoop ik dat iemand snel de doorn weet te vinden.
Om alles wat leesbaarder te maken deel ik even een gestripte versie van mijn code.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| state: { resume: [] }, mutations: { SET_RESUME_DATA (state, payload) { state.resume = [...payload] }, } actions: { async setResume ({ commit }, id){ const response = await axios.get("api/cv"); const currentResume = response.data.find((resume) => { return resume.id === id }); commit('SET_RESUME_DATA', currentResume) } } getters: { showCurrentResume (state) { return state.resume } } |
Bij het laden van een parent component stuur ik een dispatch.
JavaScript:
1
2
3
| created() { this.$store.dispatch("setResume", this.cvid ); } |
Ik probeer vervolgens de store te raadplegen in een child component
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
| <template> <pre>{{currentResume}}</pre> </template> <script> export default { computed: { ...mapGetters({ currentResume: 'showCurrentResume'}) } } </script> |
Ik zie dus dat de store wordt geupdate (door elke stap te loggen)
Maar dat mijn resume.vue eerder opgebouwd is waardoor hij "te vroeg" is met het uitpoepen van de store.state
Echter dacht ik te begrijpen dat het reactive was (wat ik ook zie), maar het blijft een lege Array.
Ik heb het ook geprobeerd met, wat mij ook geen ander resultaat geeft
getCurrentResume(){ return this.$store.getters.showCurrentResume }
Ik hoop dat iemand hier direct ziet welke domme fout ik maak...

Alvast daarvoor enorme dank!
- Creating more joy for people who interact with our digital world