React+hook+ts+ant design封装一个具有编辑和新增功能的页面

简介: React+hook+ts+ant design封装一个具有编辑和新增功能的页面

需求分析

在前端项目中 最常见的就是做一个页面的新增和编辑 通常一个页面就能够搞定

功能思维

image.png

这边的话需要做出一个弹出框的一个模式

弹出框部分设计

<Modal
            maskClosable={false}
            visible={visible}
            title={`${menu && menu.id ? '编辑' : '新增'}`}
            onCancel={props.onClose}
            onOk={onOk}
        >
           //此处省略页面内容
        </Modal>

编辑和新增

const onOk = useCallback(() => {
        form.validateFields().then(res => {
            const values = res as AddOrEditMenuFormProps;
            const info: Menu = {
                ...menu,
                ...values,
            };
            if (info.id) {
               此处省略编辑逻辑接口
            } else {
                此处省略新增逻辑接口
            }
        });
    }, []);

由于用ant design Form组件所以回显的数据通过父组件获得`

form.validateFields().then(res => {}
const values = res as AddOrEditMenuFormProps;
            const info: Menu = {
                ...menu,
                ...values,
            };

render部分

<Modal
            maskClosable={false}
            visible={visible}
            title={`${menu && menu.id ? '编辑' : '新增'}`}
            onCancel={props.onClose}
            onOk={onOk}
        >
            <Form
                name="menu"
                form={form}
                initialValues={menu || {}}
                labelCol={{
                    sm: { span: 5 },
                }}
                wrapperCol={{
                    sm: { span: 16 },
                }}
            >
                  <Form.Item
                    label="工种名称"
                    name="name"
                    rules={[{ required: true, message: '请输入工种名称' }]}
                >
                    <Input  placeholder="请输入工种名称"/>
                </Form.Item>
                <Form.Item
                    label="设备类型"
                    name="deviceTypeId"
                    rules={[
                        {
                            required: true,
                            message: "请输入设备类型",
                        },
                    ]}>
                        <Select
                        </Select>
                </Form.Item>
            </Form>
        </Modal>

总结

我是歌谣 放弃很容易 坚持一定很酷 关注前端小歌谣带你进入前端巅峰交流群

相关文章
|
10月前
|
XML Dart JavaScript
JavaScript & React & Ant Design & Flutter & Dart 基础学习笔记 Tree Form 组件通信 封装等
JavaScript & React & Ant Design & Flutter & Dart 基础学习笔记 Tree Form 组件通信 封装等
|
2月前
|
前端开发 JavaScript 安全
使用React、TypeScript和Ant Design构建现代化前端应用
使用React、TypeScript和Ant Design构建现代化前端应用
31 0
|
9月前
|
前端开发
【React工作记录一百零一】再次接触老朋友react+ant design table合并单元格(2)
#yyds干货盘点 再次接触老朋友react+ant design table合并单元格
50 0
|
10月前
|
JavaScript 前端开发 数据处理
【React/Vue2】 使用Element UI 高度封装Select 下拉框创建条目(Ant Design更为简单)
【React/Vue2】 使用Element UI 高度封装Select 下拉框创建条目(Ant Design更为简单)
【React/Vue2】 使用Element UI 高度封装Select 下拉框创建条目(Ant Design更为简单)
|
5月前
|
存储 前端开发
React & webpack &ant 学习
React & webpack &ant 学习
45 0
|
6月前
|
前端开发
从零开始学习React-引入Ant Design 组件(八)
从零开始学习React-引入Ant Design 组件(八)
54 0
|
9月前
|
前端开发 数据格式
再次接触老朋友react+ant design table合并单元格
再次接触老朋友react+ant design table合并单元格
96 0
|
9月前
|
前端开发 数据格式
【React工作记录一百零一】再次接触老朋友react+ant design table合并单元格(1)
#yyds干货盘点 再次接触老朋友react+ant design table合并单元格
68 0
|
9月前
|
前端开发 JavaScript API
【React工作记录九十九】ant design mobile实现tab滚动效果和闪屏小记
【React工作记录九十九】ant design mobile实现tab滚动效果和闪屏小记
151 0
|
9月前
|
前端开发
【React工作记录九十】ant design table实现上下行拖拽功能(类组件)
【React工作记录九十】ant design table实现上下行拖拽功能(类组件)
119 0