fabricjs 中的 svg 颜色 canvas 没有改变

svg color inside fabricjs canvas not changing

我正在尝试更改 fabricjs 中的 svg 路径填充 canvas。

使用此功能

function changeColor(material) {

    console.log(svgGroup[0].fill)
    console.log(material);
    if (material == 'base') {
        svgGroup[0].fill = '#000000';
        console.log(svgGroup[0].fill)
    }
    texture.needsUpdate = true;
    object.children[0].material = textureMaterial;
    canvas.renderAll();
}

但不会自动更新

有人知道为什么吗?任何想法都会有所帮助

我找到了解决办法,问题是我没有正确设置颜色。而不是这样做

svgGroup[0].fill = '#000000';

应该用这个

svgGroup._objects.forEach(obj => {
    if (obj.id == material) {
        obj.set('fill', color);
    }
});

调用 renderAll() 时以这种方式呈现