type
status
date
slug
summary
tags
category
icon
password
两三个月前我那只忠犬公肥(不)给我报了一个一进 My Page 页面,app就会崩掉的bug。
问题马上就锁定在之前为了快速上线用的图表库上了。
毕竟那玩意是生成 SVG 来假装图表的,数据量一大你不崩谁崩(我也没做数据量限制,每日数据都会让这个SVG加上30px宽)
调查了一番,决定使用 react-native-charts-wrapper 这个库代替原来的 SVG 图表库。
notion image

安装

安装就不讲了,不会的别写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 文档提了一嘴,不注意的直接就踩坑了。
剩下的醒了继续写……

© 2021-2024 - Diru’s Daydream -

Powered by NotionNext / Theme by NotionKylin