Wenn ich strict: true
stelle ich Fehler:Vuex Geschäft mit „streng: true“ funktioniert nicht
vue.js:525 [Vue warn]: Error in watcher "state"
(found in root instance)
warn @ vue.js:525
run @ vue.js:1752
update @ vue.js:1720
notify @ vue.js:584
reactiveSetter @ vue.js:814
Transform.resize @ transform.js:169
e.resize @ map.js:343
e._onWindowResize @ map.js:1204
vue.js:1756 Uncaught Error: [vuex] Do not mutate vuex store state outside mutation handlers.
at assert (vuex.js:182)
at Vue$3.store._vm.$watch.deep (vuex.js:714)
at Watcher.run (vue.js:1746)
at Watcher.update (vue.js:1720)
at Dep.notify (vue.js:584)
at Transform.reactiveSetter [as width] (vue.js:814)
at Transform.resize (transform.js:169)
at e.resize (map.js:343)
at e._onWindowResize (map.js:1204)
Als ich eingestellt strict: false
oder die Zeile auslassen vollständig, es funktioniert gut. Es wird empfohlen, im strikten Modus zu arbeiten: Was kann ich tun, um den Fehler zu vermeiden? Ich glaube nicht, dass ich den Speicher außerhalb von Mutationshandlern in meinem Code mutiere !?
Siehe Verhalten in this fiddle.
Sie sollten nicht versuchen, die gesamte Map im vuex-Store zu speichern, da sie in jeder interaktiven Mapbox geändert wird – Nora
@Nora Dann wie kann man die Map-Variable über mehrere Komponenten hinweg verwenden und davon profitieren, was vuex bietet? – Saurabh
Imo wäre am besten, allgemeine Funktionalität in ein separates Modul/Service zu extrahieren und in die Komponenten wo nötig zu importieren. Meiner Ansicht nach sollte Vuex-Speicher zum Verwalten des Anwendungsstatus und nicht zum Speichern globaler Variablen/Objekte verwendet werden. – Nora