Je suis un peu confus au sujet de localStorage et de son utilisation. J'ai un composantStatistic.vuequi affiche le modal à la fin.
Statistique.vue
{{numberOfGames}}
index.js
export default createStore({ state: { currentGuessIndex: 0, isWinner: false }, mutations: { checkNumberOfGames(state) { if (localStorage.getItem("NumberOfGames") === null) { localStorage.setItem("NumberOfGames", 1) } else if (state.currentGuessIndex >= 6 || state.isWinner) { let counter = localStorage.getItem("NumberOfGames"); localStorage.setItem("NumberOfGames", parseInt(counter)+1) } } }, actions: { }, modules: { } })
WordRow.vue
// some stuff watch: { submitted: { async handler(submitted) { //some stuff this.$store.commit('checkNumberOfGames') } }
Mon problème est que ledansStatistic.vuenumberOfGames
n'affiche pas le bon numéro, après avoir chargé la page, il affiche la valeur correcte sinon il laisse 1.
Je recommande d'utiliser la bibliothèque Vue Use. Il a un très bon module pour utiliser le stockage local avec VueX/Pinia dans Vue.js 3.
https://view.org/core/useLocalStorage/