CanvasJS React - 如何在处理点击事件的同时使饼图切片突出显示(又名爆炸)

CanvasJS React - How to make a pie chart slice highlight (aka explode) while at the same time handling the click event

我正在使用 React 并使用来自 canvasjs 的饼图: https://canvasjs.com/docs/charts/chart-types/html5-pie-chart/

图表有一个可选的 'click' 函数用于处理事件。这是相关的文档。 https://canvasjs.com/docs/charts/chart-options/data/click/

问题是当我实现 'click' 并调用一个函数来更新我的标签(在父组件中)时,它改变了默认行为并且不再扩展切片。

我尝试了很多不同的方法来修复它,但似乎无法解决这个问题。

此代码用于更新父级中的标签 - 请注意行 'click: this.props.onSliceSelected'。然后我可以从事件中获取切片标签并更新我的标签。

但如前所述,当我这样做时,切片不再扩展。

data: [{
                type: "pie",
                animationEnabled: true,
                startAngle: 75,
                toolTipContent: "Select: <b>{label}</b> - {y}% of Total",
                showInLegend: false,
                legendText: "{label}",
                indexLabelFontSize: 16,
                indexLabelFontColor: "white",
                indexLabel: "{label}",
                click: this.props.onSliceSelected,
                dataPoints: sortedData,
                

            }]

我已经尝试了许多其他方法来确保切片被选中 - 大多数涉及尝试在数据点上设置 exploded = true。

我在任何地方都找不到如何执行此操作的工作示例。

感谢任何想法。

编辑 - 这是一个屏幕截图,我需要更新 'selected task'(在图表之外和父组件中)。现在标签会更新,但图表不会展开!

要在单击每个切片时更新饼图中的标签,您可以在 chart-options and call chart.render(). Here is a working StackBlitz 中更新 dataPoints[index].label 以进行相同的更新。