echarts 的tooltip 自定义提示框 formatter无法使用回调函数

在使用echats时无论如何都无法使用formatter 做函数回调

今天在做一个功能时需要重新写一个Tooltip的样式,但是发现只能使用字符串模板的格式

tooltip:{
	trigger: 'axis',
	formatter:'
' + {b0} : {c0} + '
' +'
' + {b1} : {c1} + '
' }

上面是一个数据的简写模式,{a},{b},{c}是echats中代表数据的占位数字 但是这样写有个大麻烦就是我对数据进行了对比,比如2月份和3月份做对比,那2月份没有30日就会直接显示{b0}:{c0}
所以我不得不重新来找导致我无法使用回调函数的原因,我在界面上打印了传入echats的option发现了一个大问题,配置中居然没有我写的回调函数!!!,这是怎么回事?
然后我重新看了一遍代码,终于恍然大悟!!!

[{a:1,b:2,c:function(){console.log(‘c’)}},{a:2,b:3},…]

对象数组越复杂,那数据只做浅拷贝的可能性越大。
在写代码时我们为了避免数据只做浅拷贝,导致数据不及时更新的问题,经常会通过改变数据类型的方式来实现。
比如对于对象数组
我们一般可能直接用传统方法进行深拷贝处理:

JOSN.parse(JSON.stringfy())

这种方法可以很好的做到深拷贝但是会有个问题,他会把对象中存在的function方法去掉,同样我在更新echats配置时也是用

JOSN.parse(JSON.stringfy(Option))

导致formatter 函数被去除了。
为了解决这个问题,我们使用lodash 函数库 的 cloneDeep()方法,就可以避免发生类似的问题。

setOption(lodash.cloneDeep(option))

你可能感兴趣的:(reactjs,echarts)