记录一个antdesign select 全选组件demo

起源

框架是antdesign当前版本为3.2,兼容到4.8;
react版本为16.13;
可以去掉Ts部分代码
业务上需求,验证表单需要有全选的下拉框。
于是通过函数组件先写了一个demo
demo包括表单验证,全选,反向全选功能,获取表单提交数据

import React, { useState } from "react";
import { Select, Button, Divider, Modal, Form, Checkbox, message } from "antd";
const { Option } = Select;
interface optionT {
  key: string;
  label: string;
}

const SelectAll = (props) => {
  const [formVisible, setFormVisible] = useState(false);
  const { form } = props;
  const { getFieldDecorator, setFieldsValue, validateFields } = form;
  const children: optionT[] = [];
  for (let i = 10; i < 36; i++) {
    const value = {
      key: i.toString(36) + i,
      label: i.toString(36) + i,
    };
    children.push(value);
  }
  const handleOk = () => {
    validateFields((err, value) => {
      if (err) {
        return;
      } else {
        /* selectAll可以定为最后提交数据的那个字段需做处理获得其value */
        // console.log("这里是表单所有数据", value);
        setFormVisible(false);
        message.info(`这里是表单所有数据:${JSON.stringify(value)}`, 3);
      }
    });
  };
  return (
    <>
      
      
       setFormVisible(false)}
        onOk={() => handleOk()}
      >
        
          {getFieldDecorator("selectAll", {
            rules: [{ required: true, message: "Choose what you like" }],
          })(
            
          )}
        
      
    
  );
};

export default Form.create()(SelectAll);

整体效果
记录一个antdesign select 全选组件demo_第1张图片


如果对你有帮助,麻烦给个赞呗。

你可能感兴趣的:(前端,react.js,antdesign)