在 React 中使用 FusionCharts 创建热图时遇到问题

问题描述 投票:0回答:1

我正在尝试使用 FusionCharts 在我的 React 应用程序中创建热图,但遇到了一些问题。

这是我的代码:

import React from 'react';
import FusionCharts from 'fusioncharts';
import Charts from 'fusioncharts/fusioncharts.charts';
import FusionTheme from 'fusioncharts/themes/fusioncharts.theme.fusion';
import ReactFC from 'react-fusioncharts';

ReactFC.fcRoot(FusionCharts, Charts, FusionTheme);

const dataSource = {
    "chart": {
        "caption": "Sales of Liquor",
        "subCaption": "Top 5 stores in last month by state",
        "entityFillHoverColor": "#cccccc",
        "numberScaleValue": "1,1000,1000",
        "numberScaleUnit": "K,M,B",
        "numberPrefix": "$",
        "showLabels": "1",
        "theme": "fusion"
    },
    "colorrange": {
        "gradient": "1",
        "minvalue": "0",
        "code": "#e44a00",
        "startlabel": "Poor",
        "endlabel": "Good",
        "color": [{
            "maxvalue": "56580",
            "code": "#f8bd19"
        }, {
            "maxvalue": "100000",
            "code": "#6baa01"
        }]
    },
    "data": [{
        "id": "HI",
        "value": "3189"
    }, {
        "id": "DC",
        "value": "2879"
    }, {
        "id": "MD",
        "value": "920"
    }, {
        "id": "DE",
        "value": "4607"
    }, {
        "id": "RI",
        "value": "4890"
    }]
}

const HeatmapComponent = () => (
    <div>
        <ReactFC
            type="heatmap"
            width="100%"
            height="400"
            dataFormat="JSON"
            dataSource={dataSource}
        />
    </div>
);

export default HeatmapComponent;

我收到以下错误:

Uncaught (in promise) Error: ChunkLoadError: Loading chunk 4 failed.
(error: http://localhost:3000/main/fusioncharts.powercharts.js)
    at a.e (fusioncharts.js:13:2215)
    at h (fusioncharts.js:13:62601)
    at Function.<anonymous> (fusioncharts.js:13:63900)
    at i (fusioncharts.js:13:182570)
    at o (fusioncharts.js:13:182814)
    at d (fusioncharts.js:13:184030)
    at t2.chartType (fusioncharts.js:13:89022)
    at new e2 (fusioncharts.js:13:81081)
    at new f (fusioncharts.js:13:65848)
    at ReactFC2.renderChart (ReactFC.js:319:23)
    at fusioncharts.js:13:76816

我似乎无法弄清楚出了什么问题。我已确保导入所有必要的 FusionCharts 组件和库。关于可能导致此问题的原因以及如何解决它有什么想法吗?

以下是我正在使用的软件包版本:

"react": "^18.2.0",
"fusioncharts": "^3.20.0",
"react-fusioncharts": "^4.0.0",

提前致谢!

javascript reactjs fusioncharts
1个回答
0
投票
import FusionCharts from "fusioncharts";
import charts from "fusioncharts/fusioncharts.charts";
import ReactFusioncharts from "react-fusioncharts";

// Resolves charts dependancy
charts(FusionCharts);

const dataSource = {
  chart: {
    theme: "candy",
    caption: "Social Media Impact on Well-Being",
    showvalues: "0",
    subcaption: "Britain, 2017",
    showplotborder: "1",
    plotbordercolor: "#FFFFFF",
    plotborderthickness: "3",
    showshadow: "0",
    placexaxislabelsontop: "1",
    labelfontsize: "16",
    showtooltip: "0",
    usehovereffect: "0"
  },
  dataset: [
    {
      data: [
        {
          rowid: "Sleep",
          columnid: "Instagram",
          value: "-6"
        },
        {
          rowid: "Sleep",
          columnid: "Snapchat",
          value: "-7"
        },
        {
          rowid: "Sleep",
          columnid: "Facebook",
          value: "-8"
        },
        {
          rowid: "Sleep",
          columnid: "Twitter",
          value: "-5"
        },
        {
          rowid: "Fear of missing out",
          columnid: "Instagram",
          value: "-5"
        },
        {
          rowid: "Fear of missing out",
          columnid: "Snapchat",
          value: "-7"
        },
        {
          rowid: "Fear of missing out",
          columnid: "Facebook",
          value: "-4"
        },
        {
          rowid: "Fear of missing out",
          columnid: "Twitter",
          value: "-3"
        },
        {
          rowid: "Bullying",
          columnid: "Instagram",
          value: "-3"
        },
        {
          rowid: "Bullying",
          columnid: "Snapchat",
          value: "-4"
        },
        {
          rowid: "Bullying",
          columnid: "Facebook",
          value: "-5"
        },
        {
          rowid: "Bullying",
          columnid: "Twitter",
          value: "-4"
        },
        {
          rowid: "Body image",
          columnid: "Instagram",
          value: "-6"
        },
        {
          rowid: "Body image",
          columnid: "Snapchat",
          value: "-3"
        },
        {
          rowid: "Body image",
          columnid: "Facebook",
          value: "-4"
        },
        {
          rowid: "Body image",
          columnid: "Twitter",
          value: "-2"
        },
        {
          rowid: "Anxiety",
          columnid: "Instagram",
          value: "-3"
        },
        {
          rowid: "Anxiety",
          columnid: "Snapchat",
          value: "-2"
        },
        {
          rowid: "Anxiety",
          columnid: "Facebook",
          value: "-3"
        },
        {
          rowid: "Anxiety",
          columnid: "Twitter",
          value: "-2"
        },
        {
          rowid: "Depression",
          columnid: "Instagram",
          value: "3"
        },
        {
          rowid: "Depression",
          columnid: "Snapchat",
          value: "-2"
        },
        {
          rowid: "Depression",
          columnid: "Facebook",
          value: "-3"
        },
        {
          rowid: "Depression",
          columnid: "Twitter",
          value: "-2"
        },
        {
          rowid: "Loneliness",
          columnid: "Instagram",
          value: "-2"
        },
        {
          rowid: "Loneliness",
          columnid: "Snapchat",
          value: "-1"
        },
        {
          rowid: "Loneliness",
          columnid: "Facebook",
          value: "-2"
        },
        {
          rowid: "Loneliness",
          columnid: "Twitter",
          value: "-1"
        },
        {
          rowid: "Access to health advice",
          columnid: "Instagram",
          value: "1"
        },
        {
          rowid: "Access to health advice",
          columnid: "Snapchat",
          value: "-1"
        },
        {
          rowid: "Access to health advice",
          columnid: "Facebook",
          value: "3"
        },
        {
          rowid: "Access to health advice",
          columnid: "Twitter",
          value: "2"
        },
        {
          rowid: "Real-world relationships",
          columnid: "Instagram",
          value: "2"
        },
        {
          rowid: "Real-world relationships",
          columnid: "Snapchat",
          value: "4"
        },
        {
          rowid: "Real-world relationships",
          columnid: "Facebook",
          value: "3"
        },
        {
          rowid: "Real-world relationships",
          columnid: "Twitter",
          value: "1"
        },
        {
          rowid: "Awareness of people's health",
          columnid: "Instagram",
          value: "4"
        },
        {
          rowid: "Awareness of people's health",
          columnid: "Snapchat",
          value: "2"
        },
        {
          rowid: "Awareness of people's health",
          columnid: "Facebook",
          value: "5"
        },
        {
          rowid: "Awareness of people's health",
          columnid: "Twitter",
          value: "4"
        },
        {
          rowid: "Community building",
          columnid: "Instagram",
          value: "4"
        },
        {
          rowid: "Community building",
          columnid: "Snapchat",
          value: "2"
        },
        {
          rowid: "Community building",
          columnid: "Facebook",
          value: "5"
        },
        {
          rowid: "Community building",
          columnid: "Twitter",
          value: "4"
        },
        {
          rowid: "Emotional support",
          columnid: "Instagram",
          value: "4"
        },
        {
          rowid: "Emotional support",
          columnid: "Snapchat",
          value: "4"
        },
        {
          rowid: "Emotional support",
          columnid: "Facebook",
          value: "6"
        },
        {
          rowid: "Emotional support",
          columnid: "Twitter",
          value: "4"
        },
        {
          rowid: "Self-identity",
          columnid: "Instagram",
          value: "5"
        },
        {
          rowid: "Self-identity",
          columnid: "Snapchat",
          value: "4"
        },
        {
          rowid: "Self-identity",
          columnid: "Facebook",
          value: "2"
        },
        {
          rowid: "Self-identity",
          columnid: "Twitter",
          value: "4"
        },
        {
          rowid: "Self-expression",
          columnid: "Instagram",
          value: "7"
        },
        {
          rowid: "Self-expression",
          columnid: "Snapchat",
          value: "5"
        },
        {
          rowid: "Self-expression",
          columnid: "Facebook",
          value: "6"
        },
        {
          rowid: "Self-expression",
          columnid: "Twitter",
          value: "8"
        }
      ]
    }
  ],
  colorrange: {
    gradient: "1",
    minvalue: "-8",
    code: "#862d2d",
    startlabel: "Negative",
    endlabel: "Positive",
    color: [
      {
        code: "#ff9933",
        maxvalue: "-4"
      },
      {
        code: "#FFFFFF",
        maxvalue: "0"
      },
      {
        code: "#9ae5e5",
        maxvalue: "4"
      },
      {
        code: "#004d4d",
        maxvalue: "8"
      }
    ]
  }
};

class MyComponent extends React.Component {
  render() {
    return (
      <ReactFusioncharts
        type="heatmap"
        width="100%"
        height="100%"
        dataFormat="JSON"
        dataSource={dataSource}
      />
    );
  }
}

根据 React 的融合图表文档 - https://www.fusioncharts.com/dev/getting-started/react/your-first-chart-using-react

© www.soinside.com 2019 - 2024. All rights reserved.