在 OpenHarmony(ArkUI,e.g. ArkTS)中,“图表更新”通常取决于你使用的是 哪种图表方案。下面按常见场景说明。
大多数图表组件都支持通过 @State / @Link 数据变化自动刷新。
@Entry
@Component
struct ChartPage {
@State data: number[] = [10, 20, 30]
build() {
Column() {
MyChart({ data: this.data })
Button('更新数据')
.onClick(() => {
this.data = [40, 50, 60] // 图表自动刷新
})
}
}
}
✅ 适用于:
update / setOption部分图表库提供显式更新方法。
this.chart.setOption({
series: [{
data: [70, 80, 90]
}]
})
常见方法名:
setOption()updateData()invalidate()@State 存数据onDraw 或 Canvas 回调中重绘@State chartData: number[] = [1, 2, 3]
private draw(canvas: CanvasRenderingContext2D) {
canvas.clearRect(0, 0, width, height)
// 根据 chartData 绘制
}
Button('更新')
.onClick(() => {
this.chartData = [4, 5, 6]
})
✅ 数据变化 → ArkUI 重渲染 → Canvas 重绘
aboutToAppear() {
setInterval(() => {
this.data = this.data.map(v => v + Math.random())
}, 1000)
}
⚠ 注意:
✅ 正确做法
@State / @Observed❌ 错误做法
build() 外直接改 UI我可以直接给你可运行的示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。