Когда я установил strict: true
я получаю сообщение об ошибке:Vuex магазин с «строго: правдой» не работает
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)
Когда я установил strict: false
или оставьте строку полностью, это работает отлично. Рекомендуется работать в строгом режиме: что я могу сделать, чтобы избежать ошибки? Поскольку я не думаю, что я мутирую магазин вне обработчиков мутаций в моем коде !?
См. Поведение в this fiddle.
Вы не должны пытаться сохранить всю карту в хранилище vuex, так как при каждом взаимодействии карта будет менять ее. – Nora
@Nora Чем можно использовать переменную карты для разных компонентов и получить выгоду от того, что предлагает vuex? – Saurabh
Лучше всего было бы извлечь общую функциональность в отдельный модуль/услугу и импортировать в нужные компоненты. В моем понимании хранилище Vuex должно использоваться для управления состоянием приложения, а не для хранения глобальных переменных/объектов. – Nora