当前位置: 首页 > news >正文

Antd React Form.Item内部是自定义组件怎么自定义返回值

  • 在线演示
  • https://stackblitz.com/edit/stackblitz-starters-xwtwyz?file=src%2FSelfTreeSelect.tsx

需求

  • 当我们点击提交,需要返回用户名和选中树的id信息,但是,我不关要返回树的id信息,还需要返回选中树的名称
//默认返回的
{userName:'梦洁',treeInfo:'leaf1-value'
}
//但是需要返回的如下
{userName:'梦洁'treeInfo:{name:'leaf1-name',value:'leaf1-value'}
}

做法

了解下Form.Item怎么获取值的

  • 大概就是这样子

实现自定义

  • 主组件index.tsx
import {Form,Input,Button} from "antd";
import SelfTreeSelect from "../../component/SelfTreeSelect";const Index = () => {const [form] = Form.useForm();const onFinish = (values: any) => {console.log('Success:', values);};/*初始化值*/const setInitValue = () => {form.setFieldsValue({username:'梦洁',treeInfo:{value:'leaf1-value',//这里传入数组是因为对于树来说,可以多选,所以后端保存的值也可能是数组,list:['leaf1-title']}})}return (<><Formform={form}name="basic"onFinish={onFinish}><Form.Itemlabel="用户名"name="username"rules={[{required: true, message: 'Please input your username!'}]}><Input/></Form.Item>{/*自定义组件*/}<Form.Itemname="treeInfo"label="树的信息"><SelfTreeSelect/></Form.Item><Form.Item ><Button type="primary" htmlType="submit">Submit</Button></Form.Item></Form><Button onClick={setInitValue}>点击我初始化值</Button></>);
};export default Index;
  • 自定义组件SelfTreeSelect.tsx
import React, {useEffect, useState} from 'react';
import { TreeSelect } from 'antd';
const treeData = [{value: 'parent 1-value',title: 'parent 1-title',children: [{value: 'parent 1-0-value',title: 'parent 1-0-title',children: [{value: 'leaf1-value',title: 'leaf1-title',},{value: 'leaf2-value',title: 'leaf2-title',},],},],},
];
/* 默认值,初始值?form设置值 */
const SelfTreeSelect = (props:any) => {const { value,onChange } = props;console.log('查看传入的值',props)/*这里简单演示下回填值*/useEffect(() => {setCurrentValue(value?.list[0])}, [props]);/*内部值,这样子就可以设置这个值来实现默认值的操作了*/const [currentValue, setCurrentValue] = useState<string>();const onSelectChange = (newValue: string,selectList:never[]) => {console.log('输出新值第一个为选中的value,第二个为选中的title数组',newValue,selectList)setCurrentValue(newValue);onChange({value:newValue,list:selectList,})};return (<TreeSelectshowSearchstyle={{ width: '100%' }}value={currentValue}dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}placeholder="Please select"allowCleartreeDefaultExpandAllonChange={onSelectChange}treeData={treeData}/>);
};export default SelfTreeSelect;
http://www.lryc.cn/news/228267.html

相关文章:

  • 2023最新ACL大模型论文分类汇总(有代码的)
  • Java版 招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计
  • Ubuntu 22.04源码安装cmake 3.27.7
  • 无人地磅称重系统|自助过磅 料仓联动 自助卸料
  • 冥想第九百七十三天
  • ROS 学习应用篇(三)话题Topic学习之自定义话题消息的类型的定义与调用
  • 财税服务展示预约小程序的作用是什么
  • RT-Thread提供的网络世界入口 -net组件
  • 分享一些有趣的MATLAB提示音(代码可直接复制)
  • 软件测试|selenium执行js脚本
  • 【源码复现】图神经网络之PPNP/APPNH
  • 【算法与数据结构】131、LeetCode分割回文串
  • 网络编程学习笔记
  • 腾讯待办停运后怎么办呢?导出的ics文件怎么打开查看
  • 家长群如何发成绩?
  • 数组区域检索的优化 --- 分块,线段树,树状数组
  • 若依侧边栏添加计数标记效果
  • WebSocket技术解析:实现Web实时双向通信的利器
  • 深圳联强优创手持PDA身份证阅读器 身份证核验手持机
  • 力扣labuladong——一刷day31
  • 里氏代换原则
  • Illumination Adaptive Transformer
  • 【教3妹学编程-算法题】给小朋友们分糖果 II
  • 应急响应练习2
  • JS算法练习 11.13
  • js升序排序
  • 2023亚太杯数学建模C题思路
  • 【ArcGIS Pro微课1000例】0030:ArcGIS Pro中自带晕渲地貌工具的妙用
  • 【原创】java+swing+mysql办公用品管理系统设计与实现
  • sqlalchemy查询数据为空,查询范围对应的数据在数据库真实存在