type
status
date
slug
summary
tags
category
icon
password
两三个月前我那只忠犬公肥(不)给我报了一个一进 My Page 页面,app就会崩掉的bug。
问题马上就锁定在之前为了快速上线用的图表库上了。
毕竟那玩意是生成 SVG 来假装图表的,数据量一大你不崩谁崩(我也没做数据量限制,每日数据都会让这个SVG加上30px宽)
调查了一番,决定使用
react-native-charts-wrapper
这个库代替原来的 SVG 图表库。安装
安装就不讲了,不会的别写RN了(水字数)
文档
重头戏来了,这玩意…就没一个像样的文档。Readme 让你直接去翻 NPAndroidCharts 的文档……
代码库里有一个聊胜于无的 Docs,但这玩意讲真不如直接
npm install @types/react-native-charts-wrapper
。那就自己摸着石头过河呗,活人还能被文档憋死不成。
图表配置
首先这图表从名字上就能看出,是 Native 库的 Wrapper,所以想把 RN 部分塞到这图表里面是不行的(或者我没试出来)。
最明显的影响就是 RN 层的自定义字体、样式、组件等是不能组合到图表内的。
使用时建议封装一层,这东西配置项还挺多的。
我只用得到折线图,所以直接 import 然后封装
<LineChart />
就行。dataSets
:图表数据源,但要传LineDataset[]
进去,即按库要求配置的对象放在数组里传给图表。- 具体的数据配置在对象的
values
里,格式为(number | {x: number, y: number, marker: string})[]
- 数组的每一项都是一条折线图,不过我只用了一条。
- 重点来了,这里 x 轴和 y 轴都必须传
number
进去。如果希望自定义 x/y 轴显示,需要在另外的地方配置。 - 坑点:传数据进去时,数组必须按 x轴升序排列,否则会报 Native 侧的
NegativeArraySizeException
错误。这点只在 NPAndroidCharts 文档提了一嘴,不注意的直接就踩坑了。
剩下的醒了继续写……