Ich habe Probleme, meine Verpflichtung zu einem Geschäft zu arbeiten.vuex commit verpflichtet sich nicht, zu speichern
Ich rufe die Mutation über eine Aktion, die gut zu funktionieren scheint.
export const location = {
state: {
x: 0,
y: 0,
z: 0,
extent: [],
epsg: 'EPSG:3857'
},
mutations: {
setLocation(state, payload) {
// mutate state
console.log("Commit");
state.x = payload.x;
state.y = payload.y;
console.dir(state); //this does return the mutated state.
}
},
actions: {
setLocation(context, payload) {
console.dir(payload);
context.commit('setLocation', payload);
}
},
getters: {
mapLocation(state) {
return state
}
}
}
Die Aktion wird in meiner Komponente importiert:
methods: {
...mapActions(['setLocation']),
und rief dann:
var location = {
x: data[0],
y: data[1]
}
this.setLocation(location);
Dies scheint alles zu funktionieren, aber wenn ich Vue Developer Tools überprüfen, die Vuex Der Grundzustand bleibt unverändert und ich habe eine aktive Mutation (setLocation). Ich kann auf "Commit All" klicken, um die funktionierende Mutation zu bestätigen.
In meiner Komponente verwende ich einen Beobachter auf der Getter mapLocation, die ausgelöst wird, wenn ich auf Commit All klicken.
Wie kann ich es zwingen, in den Laden zu verpflichten?
Danke