在 OpenHarmony 中接入图表数据,通常分三步:准备数据源 → 绑定到图表组件 → 动态更新。下面以常见场景说明,涵盖 ArkUI(eTS/ArkTS) 和主流图表方案。
OpenHarmony 中常用方式:
@ohos/mpchart(类似 MPAndroidChart)import { LineChart, LineData, LineDataSet } from '@ohos/charts';
// 示例数据
let values: number[] = [10, 20, 15, 30, 25];
let dataSet = new LineDataSet(values, '示例数据');
let lineData = new LineData([dataSet]);
LineChart({ data: lineData })
.width('100%')
.height(300)
✅ 数据直接通过 LineData 传入即可。
import http from '@ohos.net.http';
async function loadData() {
let request = http.createHttp();
let res = await request.request(
'https://example.com/api/chart',
{ method: http.RequestMethod.GET }
);
let json = JSON.parse(res.result.toString());
let dataList: number[] = json.data;
return dataList;
}
@State chartData: number[] = [];
aboutToAppear() {
loadData().then(data => {
this.chartData = data;
});
}
Web({ src: $rawfile('echarts.html') })
.width('100%')
.height(400)
<div id="chart" style="width:100%;height:400px"></div>
<script src="echarts.min.js"></script>
<script>
let chart = echarts.init(document.getElementById('chart'));
chart.setOption({
xAxis: { type: 'category' },
yAxis: {},
series: [{ type: 'line', data: [] }]
});
</script>
this.webController.postMessage({
type: 'update',
data: [1, 2, 3, 4]
});
使用 @ohos/data.relationalStore
let result = await rdbStore.querySql(
'SELECT value FROM chart_data'
);
再转换为图表所需数组即可。
✅ 数据不显示
✅ 动态更新无效
@State 或 AppStorage数据源(网络/DB/本地)
↓
转换为数组/对象
↓
构造图表数据模型
↓
绑定到图表组件
↓
状态更新 → 自动刷新
如果你用的是 具体版本(如 OpenHarmony 3.2 / 4.0) 或 具体图表库(MPChart / ECharts),我可以给你更精准的示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。