Ich versuche, eine wirklich kleine Vue App mit einer Rails API zu bauen. Im Moment arbeite ich mit Vue, Vue-Resource und Vuex. Ich hole alle Benutzer aus der Datenbank und versuche nun eines von ihnen zu aktualisieren. Alles funktioniert gut (Benutzer patch), aber nach dem Ausführen der updateUser-Aktion möchte ich die Aktion fetchUsers erneut ausführen, um den Vuex-Speicher zu aktualisieren.So rufen Sie Aktion in Aktion in Vuex
Aber wenn die fetchUsers läuft innerhalb des Updateuser Versprechen, das ich die folgende Fehlermeldung erhalten:
undefined:1 Uncaught (in promise) TypeError: Cannot read property 'dispatch' of undefined
das ist, was meine vuex/actions.js suchen:
export const fetchUsers = function ({ dispatch, state }) {
this.$http.get('http://localhost:3000/api/v1/users').then((response) => {
dispatch('SET_USERS', response.data)
}, (response) => {
dispatch('SET_USERS', [])
console.log(response)
})
}
export const updateUser = function ({ dispatch, state }, user) {
this.$http.patch('http://localhost:3000/api/v1/users/' + user.id, {user: user}).then((response) => {
fetchUsers()
}, (response) => {
console.log(response)
})
}
ich jetzt, dass die fetchUsers Aktion verliert irgendwie den Kontext (?), aber ich weiß nicht, wie ich damit umgehen soll! Danke für jede Hilfe!
i haben die gleiche Struktur zu arbeiten, im immer fetchUsers nicht definiert. –