代码:

import React, { useRef, useEffect } from 'react';
import _ from 'lodash';
import Highcharts from 'highcharts/highstock';
// import HighchartsMore from 'highcharts/highcharts-more';
// import HighchartsDrilldown from 'highcharts/modules/drilldown';
// import { Chart, Options, Point, Series } from 'highcharts';
import HighchartsReact from 'highcharts-react-official';
import highcharts3d from 'highcharts/highcharts-3d';highcharts3d(Highcharts);
const Pie = (props) => {const { employmentInfo, getPeopleList, setVisible } = propsconst data = employmentInfo.length !== 0 ? [[employmentInfo[0].label, employmentInfo[0].value],[employmentInfo[1].label, employmentInfo[1].value],[employmentInfo[2].label, employmentInfo[2].value],[employmentInfo[3].label, employmentInfo[3].value],[employmentInfo[4].label, employmentInfo[4].value],] : []const chart = useRef();const options = {chart: {backgroundColor: 'transparent',type: 'pie',options3d: {enabled: true,alpha: 25,beta: 0},height: 230,width: 230,},title: {text: '余东村就业情况',y: 66,x: 35,style: {color: '#fff',fontSize: '14px',},},tooltip: {pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'},plotOptions: {pie: {allowPointSelect: true,cursor: 'pointer',depth: 35,dataLabels: {enabled: false,format: '{point.name}'}}},series: [{type: 'pie',name: '所占比例',data: data,showInLegend: true,events: {click: function (e) {getPeopleList({ income: e.point.options.name })setVisible(true)}}},],legend: {align: 'left',// y: '-10',layout: 'vertical',itemStyle: {color: '#ffffffe6',},},credits: {// 版权信息 (去水印)enabled: false,},}// 避免首次加载时,还没有拿到数据之前,页面就进行加载而导致没有数据;useEffect(() => {const reload = _.throttle(() => {chart.current.update({chart: {backgroundColor: 'transparent',type: 'pie',options3d: {enabled: true,alpha: 45,},// height: getRemSize(180),height: 200,width: 200,},series: [{type: 'pie',name: '所占比例',data: data,events: {click: function (e) {getPeopleList({ income: e.point.options.name })setVisible(true)}}},]});}, 500);window.addEventListener('resize', reload);return () => window.removeEventListener('resize', reload);}, []);return (<HighchartsReacthighcharts={Highcharts}options={options}callback={(ref) => (chart.current = ref)}/>)
}
export default Pie

效果:

点击某一项时可以调接口获取到对应的数据;
事件代码:

 series: [{type: 'pie',name: '所占比例',data: data,events: {click: function (e) {getPeopleList({ income: e.point.options.name })setVisible(true)}}},]

与echarts在react中的使用不同的是,highCharts在函数组件中不能通过实例来进行挂载,从而给实例添加事件;所以应该在series.event中添加事件

在react项目中使用highCharts图表,并给图表添加事件相关推荐

  1. 数据可视化:在 React 项目中使用 Vega 图表 (一)

    相关包 打开搜索引擎,一搜 Vega,发现相关的包有好几个,Vega, Vega-Lite, Vega-Embed,React-Vega 等等,不免让人头晕. 别急,它们之间的关系三四句话就能说明白, ...

  2. vue ajax highcharts,在vue项目中引入highcharts图表的方法(详解)

    npm进行highchars的导入,导入完成后就可以进行highchars的可视化组件开发了 npm install highcharts --save 1.components目录下新建一个char ...

  3. React 项目中使用Echarts

    直接上代码吧: react 项目中添加Echarts 相关模块 npm install echarts --save 代码: import React from 'react' import * as ...

  4. react项目中使用mocha结合chai断言库进行单元测试

    react项目中使用mocha结合chai断言库进行单元测试 git地址:https://github.com/yancekang/... 如果对你有所帮助,感谢start 项目搭建 create-r ...

  5. 优雅的在React项目中使用Redux

    概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在 ...

  6. 如何优雅地在React项目中使用Redux

    前言 或许你当前的项目还没有到应用Redux的程度,但提前了解一下也没有坏处,本文不会安利大家使用Redux 概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与 ...

  7. 中使用js修改变量值_谈一谈css-in-js在React项目中的使用

    一.什么是css-in-js 参考:[css in js 简介] 简单来说,传统的前端方案推崇"关注点分离"原则,HTML.CSS.JavaScript 应该各司其职,进行分离. ...

  8. [react] 在React项目中你用过哪些动画的包?

    [react] 在React项目中你用过哪些动画的包? react-transition-group 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 ...

  9. react 使用 leaflet 百度地图_【React】react项目中应用百度地图添加起始点绘制路线...

    如图:项目中百度地图的应用添加起始点.终点并绘制路线 在展示代码的时候首先展示一下后台返回给我的接口 { 其中position_list参数代表的是用户的行驶点, area参数代表的是服务区的坐标点, ...

最新文章

  1. 学Java还是Python?一张图告诉你!
  2. 什么样的编程姿势才没有bug
  3. JSP简单练习-EL获取表单数据
  4. python函数用于创建对象_Python-创建类并使用函数更改其对象值
  5. 调用gensim库训练word2vec词向量
  6. 万稞pw80线切割编程软件_现在模具设计,编程行业,还是很吃香的
  7. 计算机格式化的作用,怎样把电脑格式化 电脑格式化方法【图文】
  8. 流量卡之家:物联网资产跟踪可以实现绿色包装并关闭物流系统循环
  9. Element-Ui 复选框动态改变绑定值,复选框未勾选问题
  10. RDS电台 TA 与 AF解释
  11. 数据库trunc的用法
  12. 挖藕!模拟sql抓取qq密码
  13. 几个离散混沌映射系统(混沌函数)
  14. 代码阅读总结之Fitch and Mather 7.0(资源文件Resource随笔)
  15. 毕达哥拉斯素数的王伟猜想的简要证明
  16. [强制类型转换]C语言中的强制类型转换相关
  17. Win32汇编环境配置
  18. Linux下安装五笔输入法和更新码表
  19. 抄小米策略,纽曼你成吗?
  20. 微信小程序自动化测试全流程(安卓真机+Appium)

热门文章

  1. 小李飞刀系列之Oracle EBS期间平均成本(PAC)--生产成本计算(一)基础
  2. 005-2-Python文件操作
  3. 孙悟空这个农村人(搞笑)
  4. 模仿微信九宫格、查看大图
  5. 云效搭建流水线实现自动化构建部署
  6. JS的数据类型分类以及用法,没有这些基础,学不好js
  7. 蓝桥杯 ALGO-7 逆序对
  8. How to deploy a .Net assmebly for COM use through CAB on Web Page (转)
  9. 判断IE版本并给出提示升级浏览器
  10. 苞米豆mybatis-plus generator代码生成器3.5.1版本 Freemarker引擎