【React工作记录七十九】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()

总结

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

相关文章
|
28天前
|
前端开发 JavaScript
【边做边学】React Hooks (二)——useEffect Hook
【边做边学】React Hooks (二)——useEffect Hook
|
1月前
|
前端开发 JavaScript
React中useEffect Hook使用纠错
React中useEffect Hook使用纠错
17 0
|
4月前
|
前端开发
React pc端表格
React pc端表格
|
4月前
|
缓存 前端开发 API
【第51期】一文读懂React表格框架
【第51期】一文读懂React表格框架
86 0
|
5月前
|
JavaScript 前端开发
【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM
【HTML+REACT+ANTD 表格操作】处理(改变)数据,改变DOM
|
5月前
|
前端开发
react 表格
react 表格
|
5月前
|
自然语言处理 前端开发 JavaScript
说说你对 React Hook的闭包陷阱的理解,有哪些解决方案?
说说你对 React Hook的闭包陷阱的理解,有哪些解决方案?
52 0
|
5月前
|
自然语言处理 前端开发 JavaScript
美丽的公主和它的27个React 自定义 Hook(四)
美丽的公主和它的27个React 自定义 Hook(四)
|
18天前
|
前端开发 测试技术 开发工具
探索前端框架React Hooks的优势与应用
本文将深入探讨前端框架React Hooks的优势与应用。通过分析React Hooks的特性以及实际应用案例,帮助读者更好地理解和运用这一现代化的前端开发工具。
|
10天前
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择
【4月更文挑战第30天】对比 Flutter(Dart,强类型,Google支持,快速热重载,高性能渲染)与 React Native(JavaScript,庞大生态,热重载,依赖原生渲染),文章讨论了开发语言、生态系统、性能、开发体验、学习曲线、社区支持及项目选择因素。两者各有优势,选择取决于项目需求、团队技能和长期维护考虑。参考文献包括官方文档和性能比较文章。
【Flutter前端技术开发专栏】Flutter与React Native的对比与选择