Echarts里的树图,能不能把每个项目图标改成不同的图片?

这样子一个树图:
clipboard.png
这里的圆圈我想改成用户头像,

我看了echarts的文档,
https://www.echartsjs.com/opt...
有说:

如果需要每个数据的图形不一样,可以设置为如下格式的回调函数:
(value: Array|number, params: Object) => number|Array
其中第一个参数 value 为 data 中的数据值。第二个参数params 是其它的数据项参数。

所以我把 symbol: 'emptyCircle' 改成:

symbol: function (value, params) {
    console.log('symbol callback:', value, params);
    return 'emptyCircle';
},

按道理 只要有执行这个回调函数,console就会有输出。
但是并没有,却输出一个错误:

clipboard.png

这是echarts的bug吗?还是我写法有什么问题?

阅读 7.1k
2 个回答

这个比较奇怪,我看了源码,因为传进去的是function,所以indexof就报错了,建议可以直接修改原data

data.symbol = 'triangle'
   data.children.map((item) => {
            item.symbol = 'circle'
     
      if (item.children) { 
        item.children.map(i => { 
          i.symbol = 'circle' 
        })
      }
      })
后台传data的时候直接传这个参数放上你的头像就解决了,也就不用自己处理了

但是官方文档里是支持函数的写法的啊:

如果需要每个数据的图形不一样,可以设置为如下格式的回调函数:

(value: Array|number, params: Object) => string 

其中第一个参数 valuedata 中的数据值。第二个参数params 是其它的数据项参数。

实际使用就会报错

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题