React+hook+ts+ant design封装一个具有动态表格得页面

简介: React+hook+ts+ant design封装一个具有动态表格得页面

需求分析

在前端项目中 最常见得是可以增加多个表格数据得一个表单

功能思维

image.png

首先需要通过数组遍历

{data && data.map((item, index) => (
                        <Row style={{ marginTop: "20px" }} gutter={24}>
                            <Col span={4}>
                                <Form.Item
                                    key={index}
                                    labelCol={{ span: 13 }}
                                    wrapperCol={{ span: 8, offset: 1 }}
                                    label="缸数/匹号"
                                    name={`batchCode-${index}`}
                                    rules={[{ required: true, message: '请输入缸数/匹号' }]}
                                >
                                    <Input />
                                </Form.Item>
                            </Col>

此处通过数组遍历得方法分配索引

索引处理成为数组对象

此时需要把所在得索引变成数组对象

//数组对象自己转换为数组
export function myFunc(obj: any) {
    const newObj: any = {}
    for (const [key, value] of Object.entries(obj)) {
        const strList = key.split('-')
        const groupId = strList.pop() // 拿到最后一个"-"之后的字符
        const keyName = strList.join('') // 最后一个"-"之前的所有字符再加起来(理论上如果只有一个"-"可以直接key.split('-')[0]和key.split('-')[1])
        if (!newObj[groupId as string]) {
            newObj[groupId as string] = {}
        }
        newObj[groupId as string][keyName] = value
    }
    return Object.values(newObj)
}

这一部分就可以讲数组对象转换为数组

记住要设置一个number进行+1操作

const handleAdd = () => {
        const newData = data;
        newData.push({ index: number });
        console.log(newData, "newData")
        setNumber(number + 1)
        setData(newData)
    }

删除

const handleRemove = (index: number) => {
        console.log(index)
        const newData = data.splice(1, index)
        console.log(newData, "newData")
        setData(newData)
    }

获取值

const res = await form.validateFields()

总结

我是歌谣 放弃很容易 坚持一定很酷 关注前端小歌谣带你进入前端巅峰交流群

相关文章
使用C模拟ATM练习switch..case用法
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/44941799 这个实例很简单,看一下就能明白,至于我已经对C比较熟悉了,为什么还要从这么简单的例子入手,这个需要再详细的说明一下。
984 0
|
2天前
|
人工智能 安全 测试技术
|
4天前
|
云安全 人工智能 安全
阿里云 Agentic SOC 位居 IDC MarketScape安全运营智能体2026领导者类别
以 Agentic AI 重构安全运营闭环,阿里云云安全在产品能力与市场份额
1165 3
|
3天前
|
数据采集 机器学习/深度学习 人工智能
田间杂草定位与检测4200张YOLO智慧农业数据集分享
本数据集含4200张真实农田图像,YOLO格式,单类别(杂草)高质量标注,覆盖多作物、多光照、多生长阶段等复杂场景,专为智慧农业杂草检测与智能除草设备研发设计,支持YOLOv5/v8/v10等主流模型训练。
354 94
|
4天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
594 11
|
8天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
8天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
367 0