首页 > 其他分享 >React项目中的antd,Form和Table如何一起使用

React项目中的antd,Form和Table如何一起使用

时间:2024-10-21 15:49:44浏览次数:1  
标签:index const name Form title React key Table

React项目中的antd,Form和Table如何一起使用

在项目中我们可能会遇到单独的表格,单独的表单这样使用。但是稍微复杂一点,如果是表单中存在一个类似于表格的列表,我们能够动态的去增加删除。或者是表格中的每一行中的某一列或者多个列是表单信息,那么我们又应该怎么实现呢?

const [toFormConfigData, setToFormConfigData] = useState([]);
const columns = [
		{
			title: '字段项',
			dataIndex: 'fieldName',
			key: 'fieldName',
			align: 'center',
		},
		{
			title: '是否必填',
			dataIndex: 'requiredFlag',
			key: 'requiredFlag',
			align: 'center',
			render: (text, record, index) => (
				<Checkbox checked={text === 1} onChange={() => handleFiledRequired(text, index)} />
			),
		},
		{
			title: '字段类型',
			dataIndex: 'fieldType',
			key: 'fieldType',
			align: 'center',
			render: (text, record, index) => (
				<Select
					style={{
						width: 200,
					}}
					value={text}
					options={fieldTypeOptions}
					onChange={(value) => handleFiledType(value, index)}
				/>
			),
		},
		{
			title: '操作',
			width: '100',
			align: 'center',
			render: (text, record, index) => {
				return (
					<Space>
						{
							includeShowSetBtn.includes(record.fieldType) &&
							<Button size='small' type='link' onClick={() => handleSetConfig(record, index)}>
								设置
							</Button>
						}
					</Space>
				);
			},
		},
	];
<Table dataSource={toFormConfigData} columns={columns} pagination={false} loading={loading}/>
 
    

上面的列子是在一个表格中使用Form表单。通过动态的改变表格的数据,来达到Form表格的数据更新。

当然你也可以去别的网站上找到不同与这个方法的实现这个需求。

比如:

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 }

 

标签:index,const,name,Form,title,React,key,Table
From: https://www.cnblogs.com/shangguancn/p/18489633

相关文章

  • Angular和React有什么本质区别
    ANGULAR与REACT的本质区别在于:1、基础架构Angular是一个成熟的全功能前端框架,而React则是一个灵活的前端库;2、数据绑定Angular提供双向数据绑定,React采用单向数据流;3、依赖注入Angular支持依赖注入,React则没有这一机制;4、语法Angular使用TypeScript编写,引入了类和接口,而React......
  • el-table轮播
    <el-tableref="reportTable":data="tableData"stripestyle="width:98%;margin:0auto;"><!--<el-table-columnprop="rank"label="排名"align="center"></el-......
  • 类组件内的 react-router-dom useParams()
    我正在尝试加载基于react-router-dom路由的详细信息视图,该路由应该获取URL参数(id)并使用它来进一步填充组件。我的路线看起来像 /task/:id 并且我的组件加载正常,直到我尝试从URL中获取:id,如下所示:importReactfrom"react";import{useParams}from"react-router-......
  • vue3 修改原对象,赋值原对象的ref或者reactive如何产生响应式视图变更,vue失去响应式的
    代码测试<template><divclass='box'>{{demo[0]?.a?.b?.c}}</div></template><scriptlang='ts'setup>import{ref,reactive,computed,onMounted,nextTick,PropType,toRaw}from'vue';i......
  • vue3 ref 或者reactive被赋值其他对象数据,用的是同一块内存,而不是深拷贝
    <template><divclass='box'>{{abcDemo?.a?.b?.c}}<button@click="changeAbc">ChangeABC</button><div>{{abdDemo?.a?.b?.c}}</div></div></template><sc......
  • 八,System、Date 和 SimpleDateFormat (与时间相关)
    Java中的System、Date和SimpleDateFormat类详解在Java中,System、Date和SimpleDateFormat类是处理系统操作和日期时间的基础类。这些类提供了丰富的方法来执行系统级操作、处理日期和格式化日期时间。System类System类是Java中的一个工具类,提供了多种与系统相关的......
  • React Spring实战之API以及animated 组件的运用
    ReactSpring实战之API以及animated组件的运用小熊码农2024-04-20109 浏览#前端江河入海,知识涌动,这是我参与江海计划的第7篇。APIreact-spring库中与动画相关的API支持两种不同的使用渲染道具和react钩子的方法。接下来,我们将介绍reacthook的一些动画相关API:reac......
  • Proxifier Portable Edition v4.12 注册分析
    ProxifierPortableEditionv4.12目录ProxifierPortableEditionv4.12MFC程序分析1、res2、DoDataExchange3、GetMessageMapCRegistrationDlgCRegistrationDlg__DoDataExchange_487450CRegistrationDlg__OnOK_4874E0Register_471DC0do_check_43C500check_key_402430#校验ke......
  • 炸了!改进Transformer!Transformer-BiGRU多变量回归预测(Matlab)
    炸了!改进Transformer!Transformer-BiGRU多变量回归预测(Matlab)目录炸了!改进Transformer!Transformer-BiGRU多变量回归预测(Matlab)分类效果基本介绍程序设计参考资料分类效果基本介绍1.Matlab实现Transformer-BiGRU多变量回归预测,Transformer-BiGRU;2.运行环境......
  • YOLOv11改进策略【卷积层】| ECCV-2024 Histogram Transformer 直方图自注意力 适用于
    一、本文介绍本文记录的是利用直方图自注意力优化YOLOv11的目标检测方法研究。在目标检测任务中,清晰准确的图像对于目标检测至关重要,本文创新方法通过恢复图像质量,可以减少因图像质量低导致的误检和漏检,实现有效涨点。专栏目录:YOLOv11改进目录一览|涉及卷积层、轻量化......