如何在LightningWebChartJS的tooltip中为数值添加'k'后缀?
LightningWebChartJS tooltip添加'k'后缀不显示的解决方法
你遇到的问题是因为c-tooltip的filter回调不能直接返回字符串,组件要求返回一个与传入的tooltipItems结构一致的对象,修改其中的value字段后返回才能生效。
正确的回调实现方式
回调函数需要复制原tooltipItems对象,修改value为带'k'的字符串,再返回这个修改后的对象:
myCustomTooltipFunction(tooltipItems) { // 复制原对象避免修改源数据 const modifiedTooltip = {...tooltipItems}; // 给数值添加'k'后缀,可按需处理非数值情况 modifiedTooltip.value = `${modifiedTooltip.value}k`; return modifiedTooltip; }
同时修复代码中的语法错误
你原代码里第二个<c-data>的detail属性存在引号不匹配的语法错误,会导致数据解析异常,需要修正:
原错误代码:
<c-data label="Warning" detail='[10,20,30","40"]' backgroundcolor='rgba(119, 185, 242, 1)' stack="1"></c-data>
修正后:
<c-data label="Warning" detail='[10,20,30,40]' backgroundcolor='rgba(119, 185, 242, 1)' stack="1"></c-data>
完整代码示例
<c-chart type="bar" responsive="true"> <c-dataset labels='["Item 1","Item 2","Item 3","Item 4", "Item 5","Item 6","Item 7"]'> <c-data label="Neutral" detail='[10,20,30,40]' backgroundcolor='rgba(50, 150, 237, 1)' stack="1" ></c-data> <c-data label="Warning" detail='[10,20,30,40]' backgroundcolor='rgba(119, 185, 242, 1)' stack="1"></c-data> <c-data label="Error" detail='["10","20","30","40"]' backgroundcolor='rgba(157, 83, 242, 1)' stack="1"></c-data> </c-dataset> <c-cartesian-axis axis="x" stacked="true" > </c-cartesian-axis> <c-cartesian-axis axis="y" stacked="true"></c-cartesian-axis> <c-tooltip enabled="true" filter={myCustomTooltipFunction}></c-tooltip> </c-chart>
myCustomTooltipFunction(tooltipItems) { const modifiedTooltip = {...tooltipItems}; modifiedTooltip.value = `${modifiedTooltip.value}k`; return modifiedTooltip; }
修改完成后,tooltip就能正确显示带'k'后缀的数值了。
内容的提问来源于stack exchange,提问作者Afrose ahamed
相关产品推荐
相关产品推荐

