javascript - 访问react-chartjs饼图的一部分

标签 javascript reactjs charts chart.js react-chartjs

我正在尝试使用 react-chartjs-2 创建静态(不可点击)饼图。
但是我希望其中一个切片“弹出”,或者看起来比其他切片更大:

Visual example of the pie chart I'm trying to create

因此,我尝试访问饼图中的一个切片并修改其 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;
    }}
/>

但是,我没有找到任何有关在用户不单击切片的情况下弹出切片的信息。

最佳答案

在查看 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;

关于javascript - 访问react-chartjs饼图的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57290908/

相关文章:

javascript - 如果项目已存在,则从数组中删除该项目

javascript - 读取多个文件 cotent 的 React JS

reactjs - React-Redux : re render child component on mapStateToProps in parent change doesn't work

javascript - React javascript 中这两个声明有什么区别?

javascript - Chartjs X 轴标签和刻度格式

javascript - 语法中调用的对象上的属性的访问是什么?

javascript - jQuery .css() 函数不返回预期值

javascript - React 禁用所有事件。生成 DOM 时如何忽略 `onClick` 和 `onChange` 属性

android - 如何删除 Horizo​​ntalBarChart 中条形后面的网格线?

mysql - 选择特定时间段的烛台数据(最大值、最小值、开盘价、收盘价)