#鸿蒙通关秘籍#HarmonyOS Next使用Echarts实现动态更新图表数据的最佳方法是什么?

HarmonyOS
2024-11-29 14:55:28
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
时光笔BI

在HarmonyOS Next中实现Echarts的动态更新,需要为图表组件创建一个状态管理机制。通过State存储图表数据和配置,并在数据更新时调用组件的render方法重新渲染。

import Echarts from '../components/Echarts/Echarts'

@Entry
@Component
struct Index {
  @State option: string = ``
  @State xAxisData: string[] = [];
  @State seriesData: number[] = [];
  myEchart: Echarts | null = null;

  aboutToAppear(): void { this.getData(); }

  setOption() {
    this.option = `{
      title: { text: '基础折线图' },
      grid: { left:"15%" },
      xAxis: { data: ${JSON.stringify(this.xAxisData)} },
      yAxis: {
        axisLabel: {
          formatter:(value, index) => { return value + '万'; }
        }
      },
      series: [{
        data: ${JSON.stringify(this.seriesData)},
        type: 'line',
        name:'访问量'
      }]
    }`
    this.myEchart?.render(this.option)
  }

  getData() {
    setTimeout(() => {
      this.xAxisData = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
      this.seriesData = [120, 200, 150, 80, 70, 110, 130]
      this.setOption()
    }, 2000)
  }

  build() {
    Column() {
      Echarts({ eHeight: 300, renderCallBack: (e: Echarts) => {
        this.myEchart = e
        this.setOption()
      }})
    }
    .width('100%')
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
2024-11-29 16:58:56
相关问题