Component({ properties: { src: String, colors: Array }, observers: { 'src, colors': function(src, colors) { // 读取 src 链接资源 wx.getFileSystemManager().readFile({ filePath: src, encoding: 'binary', success: res => { let basestr if (colors && colors.length) { let a = 0 // 匹配 Hex 数值,并进行替换 basestr = res.data.replace(/#[a-zA-Z0-9]{3,6}/g, (word) => { const newColor = colors[a] a = a + 1 return newColor ? newColor : word }) } else { basestr = res.data } // 将 svg 数据进行 URL 编码 basestr = encodeURIComponent(basestr) this.setData({ svgStyle: `background-image: url("data:image/svg+xml,${basestr}");` }) } }) } } })