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

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

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

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>
                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React可以通过使用contentEditable属性来实现可编辑表格。您可以使用React组件来创建表格,然后将contentEditable属性应用于表格单元格,以便用户可以编辑表格中的内容。您还可以使用React的状态来跟踪表格中的更改,并将这些更改保存到数据库或其他数据存储中。以下是一个简单的React组件,用于创建可编辑表格: ```javascript import React, { useState } from 'react'; function EditableTable() { const [tableData, setTableData] = useState([ { id: 1, name: 'John Doe', age: 30 }, { id: 2, name: 'Jane Smith', age: 25 }, { id: 3, name: 'Bob Johnson', age: 40 } ]); const handleCellChange = (id, field, value) => { const newData = tableData.map(row => { if (row.id === id) { return { ...row, [field]: value }; } return row; }); setTableData(newData); }; return ( <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> {tableData.map(row => ( <tr key={row.id}> <td>{row.id}</td> <td contentEditable onBlur={e => handleCellChange(row.id, 'name', e.target.innerText)}>{row.name}</td> <td contentEditable onBlur={e => handleCellChange(row.id, 'age', e.target.innerText)}>{row.age}</td> </tr> ))} </tbody> </table> ); } export default EditableTable; ``` 在这个例子中,我们使用useState钩子来创建一个名为tableData的状态,它包含一个包含三个对象的数组,每个对象代表表格中的一行。我们还定义了一个名为handleCellChange的函数,该函数在单元格中的内容发生更改时被调用,并使用map函数更新tableData状态。最后,我们将contentEditable属性应用于表格单元格,并在失去焦点时调用handleCellChange函数来更新状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值