首页 > 其他分享 >Ant - Form 自定义组件 form.getFiledsValue 如何获取值

Ant - Form 自定义组件 form.getFiledsValue 如何获取值

时间:2024-04-13 18:12:05浏览次数:12  
标签:const form getFiledsValue value useState props import newValue 自定义

import { FC, useState } from 'react';
import type { SelectProps } from 'antd';
import { Select, Space, Flex, Input, Button } from 'antd';

/**
 * 扩展选择器组件,可以通过键盘 enter 输入一个 Option
 */

const InputSelect: FC<{
  defaultOptions: SelectProps['options'];
  placeholder?: string;
  value?: any[];
  onChange?: (i: any[]) => void;
}> = (props) => {
  const [options, setOptions] = useState<SelectProps['options']>(props.defaultOptions);
  const [inputValue, setInputValue] = useState('');
  const [selectedValue, setSelectedValue] = useState(props.value);

  const handleChange = (newValue: any[]) => {
    setSelectedValue(newValue);
    if (props.onChange) {
      props.onChange(newValue);
    }
  };

  const handleAdd = () => {
    if (options) {
      setOptions([
        ...options,
        {
          label: inputValue,
          value: inputValue,
        },
      ]);
    }
  };

  return (
    <Select
      mode="multiple"
      value={selectedValue}
      style={{ width: '100%' }}
      placeholder={props.placeholder || ''}
      onChange={handleChange}
      options={options}
      dropdownRender={(menu) => {
        return (
          <>
            {menu}
            <Flex gap="middle" style={{ marginTop: '1rem' }}>
              <Input onChange={(event) => setInputValue(event.target.value)} />
              <Button onClick={handleAdd}>添加</Button>
            </Flex>
          </>
        );
      }}
      optionRender={(option) => <Space>{option.data.label}</Space>}
    />
  );
};

export default InputSelect;

标签:const,form,getFiledsValue,value,useState,props,import,newValue,自定义
From: https://www.cnblogs.com/Himmelbleu/p/18133160

相关文章

  • 52 Things: Number 47: What is the Fiat-Shamir transform?
    52Things:Number47:WhatistheFiat-Shamirtransform?52件事:47号:菲亚特沙米尔的转型是什么? Thisisthelatestinaseriesofblogpoststoaddressthelistof'52ThingsEveryPhDStudentShouldKnowToDoCryptography':asetofquestionscompiledtogi......
  • Git 提交 Umi Max 项目报错:Invalid commit message format
    Git提交UmiMax项目报错:Invalidcommitmessageformat1、发现问题使用UmiMax构建的项目,commit(提交)时报错!.2、分析问题⚠️提交信息需要满足某些固定的消息格式。1、项目根目录的.umirc.ts文件中verifyCommit属性用于验证commitmessage信息。.2、配置文件......
  • C语言10-指针(多级指针、空指针、野指针),自定义数据类型(枚举enum、结构体struct)
    第12章指针pointer12.6多级指针指向指针的指针称为多级指针eg:int*ptr1=&num; int**ptr2=&ptr1; int***ptr3=&ptr2;12.7空指针应用场景:1.暂时不确定指向的指针,可以在定义的时候先赋值为NULL2.有些指针函数,如果内部出现异常无法成功实现功能,可以返回NUL......
  • 使用 flash_download_tool 下载 Vscode PlatformIO 开发 ESP32 的 bin 文件
    一言蔽之:先使用PlatformIO的命令找到PlatformIO是怎么烧录的,然后照葫芦画瓢即可。前提,VScode已经能够烧录固件了,使用PlatformIO打开所需的项目。打开VScode终端执行:piorun-v-tupload执行了之后,PlatformIO就开始编译固件并上传了,找到关键性的东西<lambda>(["up......
  • WPF自定义Window
    前言我们使用WPF开发客户端软件时,一般来讲都不会直接使用默认的Window样式,因为很难符合项目的风格,所以我们一般会自定义Window,一般有两种方式。WindowStyle=None和自定义Window,本文主要介绍第二种。一、WindowStyle=NoneWindowStyle="None"将Window的整个边框就去掉了,好处是......
  • Qt程序加载Qt platform plugin 'xcb' 出错问题解决
    1.Qt程序运行环境ubuntu16.04Qt5.12.3Qt可执行程序编译后运行Qt可执行程序后出现报错报错内容:qt.qpa.plugin:CouldnotloadtheQtplatformplugin"xcb"in""eventhoughitwasfound.ThisapplicationfailedtostartbecausenoQtplatformplugincouldbe......
  • vue+element ui el-form 阻止表单输入框按回车刷新页面
    表单只有一个元素的时候,回车会触发页面刷新,加上下面这个属性可以解决这个问题@submit.native.prevent给某个el-input添加回车键监听@keyup.enter.native="onSearch"<el-form:model="filters"@submit.native.prevent><el-form-item>......
  • ViT:拉开Trasnformer在图像领域正式挑战CNN的序幕 | ICLR 2021
    论文直接将纯Trasnformer应用于图像识别,是Trasnformer在图像领域正式挑战CNN的开山之作。这种简单的可扩展结构在与大型数据集的预训练相结合时,效果出奇的好。在许多图像分类数据集上都符合或超过了SOTA,同时预训练的成本也相对较低 来源:晓飞的算法工程笔记公众号论文:AnI......
  • Element中el-time-picer组件中value-format和format得区别
    value-format:它用于指定时间选择器的值的格式,即选择的时间的字符串格式。当用户选择时间后,组件会根据value-format的值将选择的时间转换成相应的字符串格式作为组件的值。这个属性一般用于和后端交互,将时间值以特定格式发送给服务器。format:它用于指定时间选择器的显示格式,即用......
  • docker network之 自定义网络(重点,多容器时都是使用这个)
    原来的默认使用bridge模式,创建好容器以后,2个容器使用ip地址去ping对方的ip是ok的,但是按照容器的服务名字取ping就失败: 我们知道容器在重启后,ip是可能变化的。所以那总不可能按照ip去访问吧,最好是按照服务名去访问,那怎么处理呢,请看下方:dockernetworklsdockernetworkcrea......