前提
在做毕设的时候,发现fabric.Textbox中有一些属性设置之后,刷新页面无法触发
代码演示
// this.gettersTarget 是选取的fabric对象
// 这里是watch检测input值是否发生变化
backgroundColor (newValue) {
if (this.watcherFlag()) {
let {color} = newValue
this.gettersTarget.backgroundColor = color
this.canvas.renderAll()
}
},
如图,input
值改变了,但是文字背景没有发生变化
解决方案:set()
通过阅读api,可以发现官方提供了一个触发更新的方法。
backgroundColor (newValue) {
if (this.watcherFlag()) {
let {color} = newValue
// this.gettersTarget.backgroundColor = color
this.gettersTarget.set('backgroundColor', color)
jsPageToobar.updateOoption(this.gettersTarget, 1, 'backgroundColor', newValue)
this.canvas.renderAll()
}
},
使用之后就可以解决设置fabric的对象值的时候,更新canvas无法显示的问题。