1) В mounted я делаю dispatch action, который должен получить данные с firebase
2) Как только он их получает я делаю commit мутации и заношу эти данные в state
Проблема в том, что в devTools (Vue), initialState = полученным данным с сервера, хотя commit мутации которая должна занести эти данные в state идёт ниже.
Компонент
export default {
name: 'Home',
components: {
Footer, Card, Header
},
beforeMount() {
this.$store.commit('getInitialState', {
name: '',
avatar: '',
fetchDataUser: false
})
},
mounted() {
this.$store.dispatch('getFlatsAction')
this.$store.dispatch('getInfoUser')
},
computed: {
getFlats() {
return this.$store.state.flats.items
}
},
methods: {
favoriteHandler(id) {
this.$store.commit('addFavorites', id)
}
}
}
</script>
store
const state = {
admin: {
name: '',
avatar: '',
fetchDataUser: false
}
}
const actions = {
async getInfoUser(cxt) {
cxt.commit('getStartDataUser', {
name: '',
avatar: '',
fetchDataUser: false
})
try{
const response = await fetch('https://houses-881f7-default-rtdb.firebaseio.com/users/admin.json')
const data = await response.json()
cxt.commit('getSuccessDataUser', data)
// if(!cxt.state.admin.fetchDataUser) {
// cxt.commit('saveDataAdminLocalStore', data)
// }
} catch (e) {
cxt.commit('getFailureDataUser', e)
}
}
}
const mutations = {
getSuccessDataUser(state, payload) {
state.admin.name = payload.name
state.admin.avatar = payload.avatar
state.admin.fetchDataUser = true
},
}
}
Из моих наблюдений
1) если я делаю скорость интернета меньше то state задаётся правильно
я предполагаю, что это из-за того что при медленном интернете mouted() наступает позже и следовательно позже приходят данные с сервера, но почему при обычной скорости так не работает я не понимаю