Antd中Form表单与Table表格联合的简易使用

  1. Form.Item 中使用 valuePropName 来指定子节点的值的属性,例如Table的数据源为dataSourceSwitch的数据源是checked
  2. Tablecolumns中定义需要表单控制的数据,render返回Form.Item
import { Button, Form, Input, Table } from 'antd'
import React, { useEffect } from 'react'

const About: React.FC = (props: any) => {
    const [form] = Form.useForm()
    const columns: any = [
        {
            title: '姓名',
            dataIndex: 'name',
            key: 'name'
        },
        {
            title: '年龄',
            dataIndex: 'age',
            key: 'age',
            render: (text: any, record: any, index: number) => {
                return (
                    <Form.Item name={['table', index, 'age']}>
                        <Input placeholder="请输入年龄" />
                    </Form.Item>
                )
            }
        },
        {
            title: '住址',
            dataIndex: 'address',
            key: 'address'
        }
    ]

    useEffect(() => {
        form.setFieldsValue({
            table: [
                {
                    key: '1',
                    name: '胡彦斌',
                    age: 32,
                    address: '西湖区湖底公园1号'
                },
                {
                    key: '2',
                    name: '胡彦祖',
                    age: 42,
                    address: '西湖区湖底公园1号'
                }
            ]
        })
    }, [])

    const onFinish = (values: any) => {
        console.log(values)
        // 打印结果
        /*
            {
                table: [
                {
                    key: '1',
                    name: '胡彦斌',
                    age: 32,
                    address: '西湖区湖底公园1号'
                },
                {
                    key: '2',
                    name: '胡彦祖',
                    age: 42,
                    address: '西湖区湖底公园1号'
                }
            ]
            }

        */
    }
    return (
        <Form form={form} onFinish={onFinish}>
            <Form.Item name="table" valuePropName="dataSource">
                <Table bordered columns={columns} pagination={false} />
            </Form.Item>
            <Form.Item>
                <Button htmlType="submit" type="primary">
                    Submit
                </Button>
            </Form.Item>
        </Form>
    )
}

export { About }

在这里插入图片描述

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
antd是一个非常流行的React组件库,其包含了丰富的UI组件和工具。它提供了一个Table组件用于快速创建数据表格,也提供了Form组件用于创建表单。 在实际应用,我们通常需要将表格与表单结合使用。一种常见的场景是,当用户点击表格的一行数据时,需要将该数据的详细信息展示在表单,以便用户进行编辑或其他操作。 使用antdTable组件和Form组件结合时,我们可以根据需求进行如下操作: 1. 设置表格的选择功能:antdTable组件支持设置行级的选择功能,可以通过设置rowSelection属性来实现,该属性可以指定选择操作的配置项,比如选择模式、默认选的行、选择时触发的回调函数等。 2. 设置表格的行点击事件:我们可以通过设置Table组件的onRow属性来指定行点击时触发的回调函数,该函数可以接收点击的行索引作为参数,我们可以在回调函数将该索引赋值给一个状态变量,然后在表单根据这个状态变量获取点击行的具体数据。 3. 在表单展示点击行的数据:使用Form组件创建表单时,可以使用getFieldDecorator方法来绑定表单项与数据源,从而实现数据的双向绑定。我们可以通过在表单项的初始值设置获取点击行数据的方式,从而在表单展示对应数据。 4. 表单的提交与重置:在表单编辑完数据后,我们可以通过antdForm组件提供的handleSubmit和handleReset方法来分别处理表单的提交和重置操作。handleSubmit方法会在表单校验通过后触发一个回调函数,我们可以在该回调函数进行数据的提交操作。handleReset方法会重置表单的所有字段和初始值。 综上所述,antdTable组件和Form组件可以很方便地结合使用,通过设置选择功能、行点击事件以及使用数据绑定和提交重置方法,可以实现自定义的表格与表单交互功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ywyanbin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值