React ant design 表单form自定义表单控件Demo

  • 使用
          <Form.Item
            label="名称"
            name="name"
            rules={rulesConfig}
          >
            <ListAutoComplete />
          </Form.Item>
  • 组件详情
import React, {useState} from 'react';
import {Input, AutoComplete} from 'antd';

const mockVal = (str: string, repeat: number = 1) => {
  return {
    value: str.repeat(repeat),
  };
};

interface AutoCompleteProps {
  value?: string;
  onChange?: (value: { inputVal: string }) => void;

}

const ListAutoComplete: React.FC<AutoCompleteProps> = ({value, onChange}) => {
  const [inputVal, setInputValue] = useState('');
  const [options, setOptions] = useState<{ value: string }[]>([]);
  const onSearch = (searchText: string) => {
    setOptions(
      !searchText ? [] : [mockVal(searchText), mockVal(searchText, 2), mockVal(searchText, 3)],
    );
  };
  const onSelect = (data: string) => {
    if (onChange) {
      onChange({inputVal,});
    }
  };
  const handleChange = (data: string) => {
    setInputValue(data);
  };

  return (
    <AutoComplete
      value={inputVal}
      options={options}
      onSelect={onSelect}
      onSearch={onSearch}
      onChange={handleChange}
    >
      <Input.Search size="large" placeholder="input here" enterButton/>
    </AutoComplete>
  );
};

export default ListAutoComplete;

  • 提交数据获取得到数据name对象
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值