【发布时间】:2020-09-24 14:39:38
【问题描述】:
我正在创建一个使用 Fabric.js 管理画布的 Vue 应用程序。
我想使用 Vuex 管理画布状态。 为此,我将织物画布实例设置为 vuex 状态变量。
变异
setCanvas(state, canv) {
state.canvas = canv
}
在 Vue 组件中
const canvas = new fabric.Canvas('main-canvas')
this.setCanvas(canvas) //commit the mutation
在另一个突变中,我必须在画布上添加一个对象:
addLayer(state, layer) {
state.canvas.add(layer)
}
运行此突变时,我收到以下错误:
[vuex] do not mutate Vuex store state outside mutation handlers.
我认为原因是fabric js实例本身正在编辑道具。而且vuex好像不喜欢这样。
为这个问题存储织物对象的最佳方法是什么?还是有更好的办法解决?
【问题讨论】:
标签: javascript vue.js canvas vuex fabricjs