码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • antd form.setFieldsValue问题总结


    antd form.setFieldsValue问题总结

    1.嵌套组件form实例如何传递

    想要使用form.setFieldsValue就需要实例出form对象,但是如果是如下的嵌套组件结构该怎么传递呢,antd官方给我们提供了方法

    const [form] = Form.useForm()
    
    • 1
    ...
    <Form layout="vertical" form={form}>
        <Card title="经营目标" extra={ type="primary">保存Button>}>
            <Tabs
            animated={{ inkBar: true, tabPane: true }}
            onChange={onChange}
            items={items}
            tabBarGutter={8.13}
            />
        Card>
    Form>
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    子组件则只需要使用官方提供的Form.useFormInstance()即可获得上下文中的form

    ...
      // 获取当前上下文正在使用的 Form 实例
      const form = Form.useFormInstance();
    ...
      // 改变对应input的值 
      const profit = () => {
        // setFieldsValue({name:"value"})
        form.setFieldsValue({
          SCProfitMargin: '11111', // 对应第一个SCProfitMargin input
          VCProfitMargin: '22222',  // 对应第二个VCProfitMargin input
          SCendProfitMargin: "3333333",
          VCendProfitMargin: "444444"
        })
      }
    ...
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2.form.setFieldsValue不生效可能是这个原因

    当你使用form.setFieldsValue重新设置input的值的时候,他也许不会生效,看看你的html结构是否是这样的

    这样的结构Form.Item不会关联到指定input,所以官方又提供了一个新的方案

        <Form.Item
            name="target"
            label='Amazon'
            rules={[{ required: true }]}
        >
            <Input.Group compact>
                <Input
                onBlur={lowPriceOnblur}
                style={{ width: '185px', height: '32px' }}
                defaultValue="默认值"
                />
                <Button type="primary">打开Button>
            Input.Group>
        Form.Item>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    更改后

    noStyle是为了让内层Form.Item失去样式不造成冲突

        <Form.Item
            label='Amazon'
        >
            <Input.Group compact>
                <Form.Item name="target" noStyle rules={[{ required: true }]} >
                    <Input
                    onBlur={lowPriceOnblur}
                    style={{ width: '185px', height: '32px' }}
                    defaultValue="默认值"
                    />
                Form.Item>
                <Button type="primary">打开Button>
            Input.Group>
        Form.Item>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2.more…

  • 相关阅读:
    【AHK】 MacOS复制粘贴习惯/MacOS转win键位使用习惯修改建议
    工业智能网关BL110详解之1:实现三菱 PLC FX1S 接入Modbus TCP Server云平台
    Minecraft 的元宇宙进化 ?MineDojo 实现操作角色探索程序生成的 3D 世界
    基于OpenVINO工具套件简单实现YOLOv7预训练模型的部署
    Kubernetes基础知识了解
    彻底理解建造者模式
    基于PostGIS实现大量不相邻多边形的外轮廓提取
    Java的abstract应用和代理模式应用
    金仓数据库 KingbaseGIS 使用手册(10. 地理编码处理功能参考)
    基于Springboot的超市管理系统毕业设计-附源码231443
  • 原文地址:https://blog.csdn.net/bl_ack233/article/details/128042161
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号