React Native 表格组件 react-native-table-component 快速上手:5 分钟搭出可横向滚动的销售报表

发布时间:2026/8/20 17:39:28

React Native 表格组件 react-native-table-component 快速上手:5 分钟搭出可横向滚动的销售报表
React Native 表格组件 react-native-table-component 快速上手5 分钟搭出可横向滚动的销售报表【免费下载链接】react-native-table-componentBuild table for react native项目地址: https://gitcode.com/gh_mirrors/re/react-native-table-component在 React Native 开发里展示一批有结构的业务数据往往比想象中更折腾官方基础组件没有现成的table靠 View 一层层手写对齐、边框和行高数据稍微多一点就乱成一团。react-native-table-component 就是为这个痛点而生的轻量级表格组件库它把表格拆成 Table、Row、Col、Cell 几个原子组件用声明式代码就能拼出从简单列表到复杂报表的任何布局。本文会带着你从安装、最小示例一路走到能直接跑业务的综合案例适合刚接触 React Native 表格组件的初学者。为什么别再用 View 手搭表格先花十秒钟感受一下痛点。手写表格时你至少要处理三件事每列的宽度要对齐、每行的内容要垂直居中、边框要细到不出现双线重叠。而在 React Native 里没有原生表格标签这些全靠 flex 布局手动计算改一个数字往往牵一发动全身。react-native-table-component 的解决思路很朴素把一行看作一个横向容器容器内按照你传入的宽度数组逐格渲染行高和列宽全部由数据驱动。你只需要告诉它每列多宽、每行多高、单元格里放什么剩下的布局细节交给组件内部处理。整个库的核心代码只由components/目录下的table.js、rows.js、cols.js、cell.js四个文件构成体积极小不会给你的应用增加负担。三步完成安装与导入在你的 React Native 项目根目录执行下面的命令依赖会自动写入 package.jsonnpm install react-native-table-component --save # 如果习惯用 yarn yarn add react-native-table-component安装完成后从库的统一出口导入所有组件import { Table, TableWrapper, Row, Rows, Col, Cols, Cell } from react-native-table-component;你可以把它们理解为不同的积木Row是一块横条Col是一块竖条Cell是最小的格子Table是底板TableWrapper用来把几块积木粘在一起。下面我们先用两块积木拼出第一张表。最小可运行示例一张项目排期表先看一个最简单的场景——团队项目排期表包含表头和三行任务数据import React from react; import { StyleSheet, View } from react-native; import { Table, Row, Rows } from react-native-table-component; const App () { const head [任务, 负责人, 状态]; const data [ [首页改版, 小林, 进行中], [接口联调, 阿珍, 待评审], [上线发版, 老陈, 已完结], ]; return ( View style{styles.page} Table borderStyle{{ borderWidth: 1, borderColor: #e0e0e0 }} Row data{head} style{styles.head} textStyle{styles.text} / Rows data{data} textStyle{styles.text} / /Table /View ); }; const styles StyleSheet.create({ page: { flex: 1, padding: 16, paddingTop: 40, backgroundColor: #fff }, head: { height: 44, backgroundColor: #eef6ff }, text: { margin: 8, textAlign: center }, }); export default App;运行之后你会得到一张带灰色细边框的三列表格。这里有两个值得注意的点Table的borderStyle只需要设置一次它会被自动下发给内部的每一行和每个单元格所以你不需要逐个格子描边textStyle里我用的是margin而不是padding来制造文字内边距这是官方建议的写法。核心 API 拆解这些参数到底在控制什么理解了最小示例我们再逐个拆解每个组件的关键参数。Table边框和样式的总调度Table是容器只接收两个核心属性style容器整体样式背景色、内边距都可以放在这里borderStyle一个对象包含borderWidth和borderColor控制边框粗细与颜色。注意默认borderWidth是 0不传就看不到边框。简单来说Table 像一张底图你画的每一笔边框都会自动复印到内部的每个格子上。Row 与 Rows单行与批量行的选择Row渲染一行Rows是它的批量版本循环渲染多行。它们共享一套参数data数组每个元素渲染成一个单元格widthArr每列宽度数组例如[80, 120, 60]表示三列宽度flexArr每列的 flex 值数组不指定宽度时用 flex 瓜分剩余空间height/heightArr前者是 Row 的单行高度后者是 Rows 里每一行各自的高度textStyle、style分别控制文字和行容器的样式。Rows还多一个cellTextStyle参数它是一个函数可以按行按列返回不同的文字样式适合做条件高亮。Col 与 Cols纵向填充数据当你有一列标题要竖着排列时Col比Row更顺手。Col接收data、width整列宽度、flex列弹性值和heightArr本列每个格子的高度数组。Cols则是多列的组合版本接收widthArr、heightArr、flexArr。需要提醒的是Col和Cols内部的单元格无法做到每行自适应高度如果某些行内容特别长建议用Rows组合替代。Cell 与 TableWrapper打破规则的自由组合Cell是真正的最小单元但它有一个隐藏能力——data除了字符串还可以是任意 React 元素。也就是说你可以在单元格里放按钮、图片、输入框甚至整个组件树这让表格从纯展示升级成可交互。TableWrapper则负责把任意组合粘起来比如左侧一列标题 右侧多行数据。当TableWrapper的父级不是Table时需要手动给它传borderStyle否则没有边框。综合案例可横向滚动、带操作按钮的销售报表把上面的知识点串起来做一个真实业务中很常见的场景——按门店统计的一周销售报表。门店很多需要横向滚动每行末尾还要放一个详情按钮。这个例子用到了 Table、TableWrapper、Row、Cell 的全部组合能力import React from react; import { StyleSheet, View, ScrollView, Text, TouchableOpacity } from react-native; import { Table, TableWrapper, Row, Cell } from react-native-table-component; const App () { const head [门店, 周一, 周二, 周三, 周四, 周五, 周六, 周日]; const widths [80, 60, 60, 60, 60, 60, 60, 60]; const sales [ [静安店, 12, 15, 9, 18, 21, 30, 26], [徐汇店, 8, 11, 14, 12, 19, 24, 22], [浦东店, 20, 17, 13, 16, 15, 28, 31], ]; // 单元格里放一个可点击的按钮 const action (store) ( TouchableOpacity onPress{() alert(${store} 销售详情)} View style{styles.btn} Text style{styles.btnText}详情/Text /View /TouchableOpacity ); return ( View style{styles.page} ScrollView horizontal View Table borderStyle{{ borderWidth: 1, borderColor: #c8c8c8 }} Row data{head} widthArr{widths} style{styles.head} textStyle{styles.text} / {sales.map((item, idx) ( TableWrapper key{idx} style{[styles.line, idx % 2 styles.zebra]} Cell data{item[0]} width{widths[0]} textStyle{styles.text} / {item.slice(1).map((value, j) ( Cell key{j} data{value} width{widths[j 1]} textStyle{styles.text} / ))} Cell data{action(item[0])} width{60} / /TableWrapper ))} /Table /View /ScrollView /View ); }; const styles StyleSheet.create({ page: { flex: 1, padding: 16, paddingTop: 40, backgroundColor: #fff }, head: { height: 44, backgroundColor: #3b5998 }, text: { margin: 8, textAlign: center, color: #333 }, line: { flexDirection: row, height: 44 }, zebra: { backgroundColor: #f7f7f7 }, btn: { width: 52, height: 24, backgroundColor: #5b8def, borderRadius: 4, marginLeft: 6 }, btnText: { color: #fff, textAlign: center, lineHeight: 24, fontSize: 12 }, }); export default App;这个报表实现了三件事外层ScrollView让整张表在门店多时能横向滑动TableWrapper把门店名、销售数据和按钮拼在同一行Cell的data传入按钮组件让每个单元格都可以响应点击。隔行用半透明的底色做了斑马纹视觉上更易读。三个容易踩的坑提前帮你避雷结合官方文档的注意事项这几个坑新手基本都会碰到内边距用 margin 而不是 padding库内部对文字有justifyContent: center的居中处理用padding会导致文字偏移统一在textStyle里用margin调整最稳妥。Col/Cols 不做逐行自适应高度纵向布局的格子高度依赖heightArr显式指定需要自适应行高的场景请改用Rows。父元素不是 Table 时边框会消失TableWrapper直接放在ScrollView里时记得手动补borderStyle{{ borderWidth: 1, borderColor: ... }}否则你会疑惑边框去哪了。总结与延伸一句话总结react-native-table-component 用极小的体积和清晰的组件拆分把 React Native 表格组件的搭建成本降到了最低从简单列表到可交互报表都能一步到位。想继续深入的话可以直接阅读源码里的components/table.js、components/rows.js等文件看它如何用React.cloneElement向下传递borderStyle理解实现细节后你就能基于它封装出自己的通用表格组件了。【免费下载链接】react-native-table-componentBuild table for react native项目地址: https://gitcode.com/gh_mirrors/re/react-native-table-component创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

零基础玩转暗黑破坏神2存档编辑器:7步完成从角色到装备的全面改造

零基础玩转暗黑破坏神2存档编辑器:7步完成从角色到装备的全面改造

2026/8/20 17:39:28

零基础玩转暗黑破坏神2存档编辑器:7步完成从角色到装备的全面改造 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor "肝"这个字,大概是暗黑破坏神2玩家最熟悉的心酸。为了一件词缀理想的装备反复…

植物大战僵尸修改器 PvZ Tools 保姆级教程:从下载安装到自定义出怪,一篇全部搞定

植物大战僵尸修改器 PvZ Tools 保姆级教程:从下载安装到自定义出怪,一篇全部搞定

2026/8/20 17:39:28

植物大战僵尸修改器 PvZ Tools 保姆级教程:从下载安装到自定义出怪,一篇全部搞定 【免费下载链接】pvztools 植物大战僵尸原版 1.0.0.1051 修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztools 结论先行:植物大战僵尸修改器 …

想收藏B站视频却只能在线看?一个开源工具让会员4K和充电视频轻松存进本地

想收藏B站视频却只能在线看?一个开源工具让会员4K和充电视频轻松存进本地

2026/8/20 17:39:28

想收藏B站视频却只能在线看?一个开源工具让会员4K和充电视频轻松存进本地 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader …

IsaacLab实战:Franka机械臂抓取立方体,从环境配置到一次跑通

IsaacLab实战:Franka机械臂抓取立方体,从环境配置到一次跑通

2026/8/20 20:59:39

IsaacLab实战:Franka机械臂抓取立方体,从环境配置到一次跑通 【免费下载链接】IsaacLab Unified framework for robot learning built on NVIDIA Isaac Sim 项目地址: https://gitcode.com/GitHub_Trending/is/IsaacLab 你花三天搭好的 RL 训练环…

检测到逃逸风险怎么办?container-escape-check 之后的 10 大 Docker 安全加固措施

检测到逃逸风险怎么办?container-escape-check 之后的 10 大 Docker 安全加固措施

2026/8/20 20:59:39

检测到逃逸风险怎么办?container-escape-check 之后的 10 大 Docker 安全加固措施 【免费下载链接】container-escape-check docker container escape check || Docker 容器逃逸检测 项目地址: https://gitcode.com/gh_mirrors/co/container-escape-check 在…

给 Copilot for Xcode 开发自定义工具:3 个实战案例,把 AI 助手调教成真正会干活的搭档

给 Copilot for Xcode 开发自定义工具:3 个实战案例,把 AI 助手调教成真正会干活的搭档

2026/8/20 20:59:39

给 Copilot for Xcode 开发自定义工具:3 个实战案例,把 AI 助手调教成真正会干活的搭档 【免费下载链接】CopilotForXcode AI coding assistant for Xcode 项目地址: https://gitcode.com/GitHub_Trending/cop/CopilotForXcode 如果你已经受够了 …

Tabby 自托管AI编程助手实战:四关打通,私有化代码补全从部署到团队落地

Tabby 自托管AI编程助手实战:四关打通,私有化代码补全从部署到团队落地

2026/8/20 20:59:39

Tabby 自托管AI编程助手实战:四关打通,私有化代码补全从部署到团队落地 【免费下载链接】tabby Self-hosted AI coding assistant 项目地址: https://gitcode.com/GitHub_Trending/tab/tabby Tabby 是一款可以完全部署在自有服务器上的 AI 编程助…

gInk屏幕画笔完全指南:3分钟上手,让Windows屏幕标注像写字一样自然

gInk屏幕画笔完全指南:3分钟上手,让Windows屏幕标注像写字一样自然

2026/8/20 20:59:39

gInk屏幕画笔完全指南:3分钟上手,让Windows屏幕标注像写字一样自然 【免费下载链接】gInk An easy to use on-screen annotation software inspired by Epic Pen. 项目地址: https://gitcode.com/gh_mirrors/gi/gInk 想象一下:正在给团…

技术架构图的本地复现步骤

技术架构图的本地复现步骤

2026/8/20 20:49:35

技术架构图的本地复现步骤 这篇要解决什么 技术架构图的本地复现步骤讨论的是一个可复查的工程问题。技术架构图的本地复现步骤不拿未经记录的事故、跑分或成本当作论据;判断需要回到当前项目的输入、版本和运行条件。 从边界开始 处理技术架构图的本地复现步骤时&a…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/19 9:17:18

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

2026/8/20 0:08:45

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com…

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

2026/8/20 0:08:45

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 判断你是否…

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

2026/8/20 0:08:45

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 按 3MF 官方规范的字面意思,一…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…