如何使用HighchartsReact with Ref?我想使用setChartOptions并更新,但无法使用

66bbxpm5  于 2022-11-10  发布在  Highcharts
关注(0)|答案(1)|浏览(164)

如何使用HighchartsReact with Ref?我想使用setChartOptions并更新,但这是不可能的。

const LineChart: FC<SubscriberType> = ({ client }) => {
    **const chartRef = useRef(null);**
      const initChartOptions = {
        title: {
          text: 'Loading...',
        },
        xAxis: {
          categories: ['Loading...'],
        },
        series: [{ data: [], name: 'signal' }],
      };

      let updateChartOptions: unknown;

      client.on('message', (topic: string, message: string) => {
        const signalData = JSON.parse(message);
        console.log(signalData);
        updateChartOptions = {
          title: {
            text: topic,
          },
          xAxis: {
            categories: [
              '1',
              '2',
              '3',
              '4',
              '5',
              '6',
              '7',
              '8',
              '9',
              '10',
              '11',
              '12',
              '13',
              '14',
              '15',
            ],
          },
          series: [{ data: signalData, name: 'signal' }],
        };
      });

      useEffect(() => {
      **chartRef.current.charts.setChartOptions(updateChartOptions);**
      **chartRef.current.charts.update(updateChartOptions);**
        console.log('LineChart');
      }, [updateChartOptions]);

      return (
        <div className="Main">
          <HighchartsReact
          **ref={chartRef}**
            containerProps={{ style: { width: '100%' } }}
            highcharts={Highcharts}
            options={initChartOptions}
            updateArgs={[true]}
            OnetoOne={this}
            allowChartUpdate
          />
        </div>
      );
    };

帮助我请我想活更新我的highcharts与参考
我想使用ref而不是state来最小化资源
如果你知道如何用最少的资源绘制 highcharts ,请让我知道

falq053o

falq053o1#

您可以使用React引用获取图表示例。请检查以下示例:

useEffect(() => {
    const chart = chartComponentRef.current.chart;
    chart.update(...);
  }, [...]);

现场演示:https://codesandbox.io/s/highcharts-react-demo-3ly4p2?file=/demo.jsx
**文档:**www.npmjs.com/package/highcharts-react-official#how-to-get-a-chart-instance

相关问题