react实现一维表格、键值对数据表格key value表格

UI画的需求很抽象,直接把数据铺开,不能直接用antd组件了

上一行是name,下一行是value,总数不定,最后前端还要显示求和

javascript 复制代码
class OneDimensionTable extends React.Component {  
    render() {
        const { data } = this.props;
        let total = 0;
        data.map(item => total+=item.value);
        const tableData = [...data, {name: '合计', value: total}];
        const row = Math.trunc(tableData.length % 5 == 0 ? tableData.length/5 : tableData.length/5+1); //一行5个,可以改
        return (
            <table style={{border:'1px solid #1890ffd0', color:'white', fontSize: 12, width: 540}}>
            <tbody>
                {[...Array(row)].map((v, i) => (
                    <>
                        <tr>
                            {[...Array(5)].map((value,index)=><td style={{paddingTop: 10, paddingBottom: 10, textAlign: 'center', backgroundColor: 'rgb(29,124,237,0.2)'}}>{tableData[i*5+index]?.name}</td>)}                           
                        </tr>
                        <tr>
                            {[...Array(5)].map((value,index)=><td style={{paddingTop: 10, paddingBottom: 10, textAlign: 'center'}}>{tableData[i*5+index]?.value}</td>)}                           
                        </tr>
                    </>
                ))}
            </tbody>
            </table>
        ) 
    }
};

使用:

javascript 复制代码
<OneDimensionTable data={data}></OneDimensionTable>

(我所说的一维:表格都是二维的,数据在纵横两个方向上应当都有意义,但本需求数据只在一个方向上有意义,所以我直接叫它一维表格了)

相关推荐
excel1 分钟前
webpack 核心编译器 第三节
前端
qq_340474022 分钟前
5.1 WPF路由事件以及文本样式
前端·c#·wpf
拉不动的猪5 分钟前
回顾vue3异步组件加载及其原理
前端·javascript·vue.js
—Qeyser32 分钟前
用Deepseek写扫雷uniapp小游戏
开发语言·前端·javascript
摆烂工程师1 小时前
保姆教程:2025年 ChatGPT Plus 的订阅升级攻略和支付失败的解决方式
前端·后端·程序员
蓝屏的钙1 小时前
H5 如何 C 端唤起导航高德百度 APP
前端·app
冴羽1 小时前
SvelteKit 最新中文文档教程(13)—— Hooks
前端·javascript·svelte
skywalk81631 小时前
自动化浏览器的测试框架playwright 支持多种浏览器Chromium、Firefox 和 WebKit
前端·chrome·自动化·测试·playwright
小宋10211 小时前
Vue实现动态数据透视表(交叉表)
前端·javascript·vue.js·数据透视表·动态交叉表
x-cmd1 小时前
x-cmd install | Wuzz - Web 开发与安全测试利器,交互式 HTTP 工具
前端·网络协议·安全·http·浏览器·测试·命令行