У меня есть значение для счетчика, хранящегося в Firebase.
{
name: 'sheep',
total: 0
}
Я синхронизирую это со значением в состоянии Vuex, используя действие, вызывающее Firebase.
loadedCounter ({ commit }) {
commit('setLoading', true)
firebase.database().ref('animals').on('value', (snapshot) => {
let counter = []
let obj = snapshot.val()
for (let key in obj) {
counter.push({
name: obj[key].name,
total: obj[key].total
})
}
commit('setLoadedCounter', test)
commit('setLoading', false)
})
},
Затем я используюcomputed
свойство в моем компоненте Vue, чтобы получить значение.Получатель работает.
computed: {
sheepCounter: {
get () {
let test = this.$store.getters.getSheep
return test.total
},
set (value) {
this.$store.commit('updateSheep', value)
}
}
Однако установщик выдает ошибки.Я получаю эту ошибку в консоли:
[vuex] неизвестный тип мутации: updateSheep
Я считаю, что проблема заключается в том, что набор может ссылаться только на мутацию, а updateSheep
является action
.Но, насколько я понимаю, это должно быть действие, потому что это асинхронный код.
updateSheep ({commit}, payload) {
firebase.database().ref('animals').child('sheep').update({total: payload})
},
Как я могу установить данные, используя набор свойств компьютера, который синхронизируется с firebase?