我正在尝试使用react-chartjs-2
创建静态(不可点击)饼图。
但是,我希望其中一个切片“弹出”,或显得比其他切片大:
因此,我正在尝试访问饼图中的一个切片并修改其outerRadius
属性。
我在Stack Overflow和Github中都遇到了多个类似的问题,这有助于我提出以下建议:
import { Pie } from 'react-chartjs-2';
<Pie
data={data}
options={options}
getElementsAtEvent={(elems) => {
// Modify the size of the clicked slice
elems[0]['_model'].outerRadius = 100;
}}
/>
但是,我没有发现没有用户单击就弹出切片的任何内容。
答案 0 :(得分:0)
在Pie
组件的内部查看之后,我终于找到了答案。
您可以在componentDidMount()
内找到它:
import React, { Component } from 'react';
import { Pie } from 'react-chartjs-2';
class PieChart extends Component {
componentDidMount() {
const change = {
sliceIndex: 0,
newOuterRadius: 100
}
const meta = this.pie.props.data.datasets[0]._meta;
meta[Object.keys(meta)[0]]
.data[change.sliceIndex]
._model
.outerRadius = change.newOuterRadius;
}
render() {
const data = {
type: 'pie',
datasets: [ { data: [10, 20, 30] } ],
labels: ['a', 'b', 'c'],
};
const options = {};
return <Pie
ref={(self) => this.pie = self}
data={data}
options={options}
/>
}
}
export default PieChart;