Ant Design Form Input 组件添加快捷按钮及点击事件

发布时间: 2022-08-05 09:19:50 作者: 大象笔记

例如,我想在 Ant Design 的 Input 按钮右侧添加一个快捷按钮, 用来自动将文章标题生成网址 slug。

实现逻辑

最终代码

import type {FormInstance} from 'antd';
import {getSlug} from '@/services/ant-design-pro/api';
import {ThunderboltOutlined} from '@ant-design/icons';

const CreateForm: React.FC<CreateFormProps> = (props) => {
    const formRef = React.createRef<FormInstance<API.Article>>();
    const genSlug = (
        <ThunderboltOutlined onClick={slugHandler} />
    );

    async function slugHandler() {
        const title = formRef.current?.getFieldValue("Title");
        const data = await getSlug({Content: title});
        if (data.errCode == 0) {
            formRef.current?.setFieldValue("Slug", data.data);
        }
    }

    return (
        <Modal>
            <Form ref={formRef}>
                <Form.Item name="Slug" label="Slug" rules={[{ required: true }]}>
                    <Input addonAfter={genSlug} />
                </Form.Item>
            </Form>
        </Modal>
    )
}

比较恶心的地方

我是一名山东烟台的开发者,联系作者