首页 > 其他分享 >【React工作记录一百一十八】hook+ant design实现列表的增加和修改(弹出框)

【React工作记录一百一十八】hook+ant design实现列表的增加和修改(弹出框)

时间:2023-06-21 20:01:17浏览次数:63  
标签:React style form response ant hook message id 页面

前言

大家好 我是歌谣 列表页面的新增和编辑是日常开发中遇到比较多的问题 如何控制 一个页面实现页面的新增和编辑

效果演示

【React工作记录一百一十八】hook+ant design实现列表的增加和修改(弹出框)_微信公众号

分析 对于以上的页面 先渲染出结构

<Form
                name="menu"
                form={form}
                labelCol={{
                    sm: { span: 5 },
                }}
                wrapperCol={{
                    sm: { span: 16 },
                }}
            >
                  <Form.Item
                    label="款式"
                    name="style_id"
                    rules={[{ required: true, message: '请输入款式' }]}
                >
                    <Select
                        showSearch
                        style={{ width: "200px" }}
                        placeholder="请选择款式"
                        optionFilterProp="children"
                      
                        options={styleList}
                    ></Select>
                </Form.Item>
                <Form.Item
                    label="通用部位"
                    name="part"
                    rules={[{ required: true, message: '请输入通用部位' }]}
                >
                    <Select
                        showSearch
                        style={{ width: "200px" }}
                        onChange={handleChange}
                        placeholder="请选择部位"
                        optionFilterProp="children"
                        options={PartsList}
                    ></Select>
                </Form.Item>
                <Form.Item
                    label="部位"
                    name="partName"
                    rules={[{ required: true, message: '请输入部位' }]}
                >
                    <Input placeholder='请输入部位'></Input>
                </Form.Item>
            </Form>

操作要点1 进入页面判断是清空页面还是赋值

useEffect(()=>{
        if(type=="edit"){
            form.setFieldsValue({
                style_id:menu?.style_id,
                partName:menu?.name,
            })
        }else{
            form.resetFields()
        }
    },[])

操作要点2 判断是新增接口还是编辑接口

const onOk = useCallback(() => {
        form.validateFields().then(res => {
            const values = res as AddOrEditMenuFormProps;
            const info: Menu = {
             
            };
            if (info.id) {
                postGrest().update('t_base_part_region', { id: info.id, data: {
                    style_id:form.getFieldValue("style_id"),
                    name:form.getFieldValue("partName")
                } }).then((response: any) => {
                    if (!response.code) {
                        message.success("编辑成功")
                        props.onConfirm();
                    } else {
                        message.warning(response.message)
                    }
                })
            } else {
                postGrest().create('t_base_part_region', { data: {
                    style_id:form.getFieldValue("style_id"),
                    name:form.getFieldValue("partName")
                } }).then((response: any) => {
                    if (!response.code) {
                        message.success("创建成功")
                        props.onConfirm();
                    } else {
                        message.warning(response.message)
                    }
                })
            }
        });
    }, []);

小结

我是歌谣 微信公众号 关注小歌谣 长期分享前端知识 想加入前端巅峰人才交流群私信我

标签:React,style,form,response,ant,hook,message,id,页面
From: https://blog.51cto.com/u_14476028/6531144

相关文章

  • java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?
    java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?答案2023-06-21:java的:这个问题,我问了一些人,部分人是回答得有问题的。synchronized这是个关键字,加锁和解锁不是直接用代码实现,所以在代码层面上就杜绝了加锁和解锁不在同一个线程得情况。可以这么说,synch......
  • java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?
    java中synchronized和ReentrantLock的加锁和解锁能在不同线程吗?如果能,如何实现?答案2023-06-21:java的:这个问题,我问了一些人,部分人是回答得有问题的。synchronized这是个关键字,加锁和解锁不是直接用代码实现,所以在代码层面上就杜绝了加锁和解锁不在同一个线程得情况。可以这么说,s......
  • ant design vue的customRender()方法中使用$createElement提示undefined
    antdesignvue的customRender()方法中使用$createElement提示undefined报错信息如下:TypeError:Cannotreadpropertiesofundefined(reading'$createElement')原因:如果index.vue文件中是从另一个columns.js的文件中引用的列配置,在columns.js文件中的customRender()方法中使......
  • react学习,实现子组件监听父组件对像的变化
    我们可以结合useEffet,useRef,useState来实现子组件监听父组件对像的变化:import{useEffect,useRef,useState}from"react";interfaceMyProps={counter:number;};constMyChildComponent:React.FC<MyProps>=({counter})=>{constprevCounterRef=u......
  • 【React工作记录一百一十六】前端小知识点扫盲笔记记录14
    前言我是歌谣放弃很容易但是坚持一定很酷微信公众号关注前端小歌谣带你进入前端巅峰交流群今天继续对前端知识的小结根据每个元素i属性进行排序<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"/> <metahttp-equiv="X-UA-Compatible"content="IE=edge&......
  • 【React工作记录一百一十七】hook项目实例之原始数据形成ant design table表格
    前言大家好我是歌谣由于项目最近使用的数据统一由postgrest定义所以返回的数据只能是各个表之间的层级关系数据格式[{"id":1,"code":"JP","name":"皮夹克","t_base_style":[{"id":66,"code&......
  • 一键hook js Crypto库的加密方法
    一键hookjsCrypto库的加密方法//一键HookCrypto几个基本的方法AESDES3DESHmacSHARSA(function(){'usestrict';console.log("Hook脚本初始化成功");//过dubuggervarconstructorEx=constructor;Function.prototype.constructor=func......
  • React - 31 redux和react-redux的归纳梳理
    如果使用redux1.把reducer/状态按照模块进行划分和管理;把所有模块的reducer合并为一个即可!!2.每一次任务派发,都会把所有模块的reducer,依次去执行,派发时候传递的行为对象(行为标识)是统一的!!所以我们要保证各个模块之间,派发的行为标识的唯一性!!>派发行为标识的统一管理!!3.需......
  • React 性能優化:使用 memo、useCallback、useMemo
    在寫網頁時,我們通常習慣把一個頁面切割成很多的元件(Component),讓我們容易組織與管理頁面的組成。但是在React中複雜的元件關係,如果沒有經過優化,將有可能會造成性能上的問題。在FunctionComponent中,重新渲染(re-render)很輕易就會被觸發,少量的元件時還不會發生太大的問......
  • react-native 调用系统原生分享
    调用手机系统原生分享如下图 使用: react-native-sharereact-native-share官网......