react antd Modal里Form设置值不起作用

问题描述:

react antd Modal里Form设置值不起作用,即使用form的api。比如:编辑时带出原有的值。

造成的原因:一般设置值都是在声明周期里设置,比如:componentDidMounted里设置,hook则在useEffetc里设置,因为Form在Modal里,会造成 form还没渲染完,就已经设置完值的情况 即在调用form的实例时,Modal内部的组件并未渲染,才导致了该错误。

为何在 Modal 中调用 form 控制台会报错?

 这是因为你在调用 form 方法时,Modal 还未初始化导致 form 没有关联任何 Form 组件。你可以通过给 Modal 设置 forceRender 将其预渲染

 表单 Form - Ant Design

解决问题:

知道了原因那解决起来当然就好解决了。

方案一、给 Modal 设置 forceRender 将其预渲染:

const [form] = Form.useForm();useEffect(() => {form.setFieldsValue({ ...xxx })}, [])< Modal forceRender><Form form={form}/></Modal >

需要注意的是,当 forceRendertrue 时,Modal 组件会在第一次渲染时就会渲染子组件,这可能会导致一些组件的生命周期函数提前执行,从而产生一些不符合预期的结果。因此,在使用 forceRender 属性时,需要特别注意 Modal 中子组件的生命周期函数的执行顺序和时机。 总的来说,forceRender 属性可以在 Modal 渲染时立即渲染子组件,从而提高用户体验,但是也可能会对性能造成一定的影响。在使用时需要根据具体情况进行权衡和选择。  

方案二、使用定时器(最不推荐的)

定时器这个存在一些坑,因为你无法确认 渲染dom需要多久。如果超过设置得时长,就会无法赋值成功。

const [form] = Form.useForm();const formRef = useRef(null);useEffect(() => {setTimeout(()=>{form.setFieldsValue({ ...xxx })},500)}, [])< Modal><Form form={form} form={form}/></Modal >

总结:

我个人更倾向于方式一。

如果你出现了 Warning: Instance created by useForm is not connected to any Form element. Forget to pass form prop?的警告 可以看:Warning: Instance created by useForm is not connected to any Form element. Forget to pass form prop_崽崽的谷雨的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/256562.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Dockerfile

Docker镜像原理&#xff1a; docker镜像是由特殊的文件系统叠加而成最低端的是boofs&#xff0c;并使用宿主机的bootfs第二层是root文件系统rootfs&#xff0c;称为base image让再往上叠加其他的镜像文件统一文件系统(Union FileSystem)技术能够将不同的层整合成一个文件系统&…

CVPR 2023 | 南大王利民团队提出LinK:用线性核实现3D激光雷达感知任务中的large kernel...

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【Transformer】微信交流群 【CVPR 2023】LinK&#xff1a;用线性核实现3D激光雷达感知任务中的large kernel 本文介绍我们媒体计算研究组&#xff08;MCG&#xff09;在3D激…

Arm推出新一代高性能CPU内核Cortex-X4以及GPU Immortalis-720 GPU

每年差不多这个时候&#xff0c;智能手机芯片背后的大脑 Arm 都会推出高通、联发科等公司用于下一代SoC的构建模块。在 2023 年 Arm 技术日期间&#xff0c;Arm 推出了一系列涵盖高性能和低功耗用例的新 CPU 内核&#xff0c;以及其第五代 GPU&#xff0c;并提供光线追踪图形支…

Autohotkey按键映射

文章目录 功能前缀鼠标按键键盘按键虚拟键码和扫描码实操 功能前缀 尽管在初步使用中已经对常见热键做了说明&#xff0c;但为了本文的完整性&#xff0c;这里还是重新表述一下 #!^<^>!winAltCtrlShiftAlt Gr 其中&#xff0c;<, >为修饰符&#xff0c;用于区分…

4.1 文件操作(File类)

ava中&#xff0c;对文件操作的常用类是java.io.File。这个类提供了许多方法来操作文件和目录。本章节我们将学习关于File类的重要方法以及如何使用它们来操作文件。 4.1.1 创建File对象 创建一个File对象不会在磁盘上创建一个新文件。File对象只是一个在Java代码中表示文件或…

【微信小程序】小程序自定义随机分享图片

&#x1f349;&#x1f349;&#x1f349;大家好&#xff0c;我是痴心阿文&#xff0c;你们的学友哥 。 本章内容&#xff1a;微信小程序分享功能&#xff0c;支持自定义分享随机图片。看完需要花费5分钟&#xff0c;效果图如下&#xff1a; &#x1f349;&#x1f349;&#x…

小程序设置按钮分享功能

一般小程序分享可以通过右上角的分享功能进行分享&#xff0c;如果想要在页面内进行按钮设置。可以这样子设置&#xff1a; 效果图&#xff1a; WXML中&#xff1a; 定义button按钮来触发分享事件&#xff0c;在button标签上写上 open-typeshare’属性 <button open-type…

uniapp中的分享功能实现(APP,小程序,公众号)

uniapp中的分享功能实现(APP,小程序&#xff0c;公众号) 1.APP端的分享 app端的分享可以直接使用uniapp封装的方法uni.share&#xff0c;uni-app的App引擎已经封装了微信、QQ、微博的分享SDK&#xff0c;开发者可以直接调用相关功能。可以分享到微信、QQ、微博&#xff0c;每个…

微信小程序分享功能开发及调试方法

首先说一下使用方法如下&#xff0c;Button组件设置open-type"share"即可触发onShareAppMessage完成分享功能 <button class"toudi" open-type"share" catchtap"toujianli" data-qyuid{{[item.uid,item.id,3,item.provinceid,item…

微信小程序 分享功能

1、分享 可以分享小程序的任何一个页面给好友或群聊。注意是分享给好友或群聊&#xff0c;并没有分享到朋友圈。一方面微信在尝试流量分发方式&#xff0c;但同时又不愿意开放最大的流量入口。 开发文档&#xff1a;https://mp.weixin.qq.com/debug/wxadoc/dev/api/share.html?…

小程序一键分享html5,H5手机网站封装微信小程序并实现分享功能的教程

通过本文教程可以实现将H5手机网站直接封装成微信小程序&#xff0c;并且支持分享功能。但不支持微信支付功能。 说明&#xff1a;手机站域名必须开启https模式 第一步&#xff1a; 微信开发者工具中创建小程序&#xff0c;填写你自己的小程序AppID 第二步&#xff1a;修改app.…

uni-app 微信小程序 分享功能 传参 接收 与 调试

uni-app 微信小程序 功能 传参 接收 与 调试 当使用微信小程序进行分享好友功能时&#xff0c;怎样能够联调&#xff0c;查看是否接收到参数&#xff0c;并在被分享人点进来的时候逻辑处理是否正确。 1、分享功能实现 分享给朋友 有两种方式&#xff1a; 第一种就是 微信右上…

Python:Python编程:从入门到实践__超清版:Python标准库

Python标准库 1. OrderedDict2. threading三级目录 Python标准库是一组模块&#xff0c;按照的Python都包含了它&#xff0c;我们只需要在程序开头包含一条简单的 import 语句&#xff0c;就可以使用标准库中的任何函数和类。 下面我介绍几个重点 标准库 os : 提供一些与操作系…

JointJS+ v3.7 Crack

JointJS v3.7 改进了对 SVG 上下文中的外部对象的支持。 2023 年 5 月 30 日 - 16:00 新版本 特征 改进了对外部对象 (HTML) 的支持- 外部对象已成为 Web 开发的标准&#xff0c;JointJS 现在已经在 SVG 上下文中引入了对外部对象的全面且功能齐全的支持。这意味着您现在可以在…

ElasticSearch安装部署

ElasticSearch安装部署 简介 全文搜索属于最常见的需求&#xff0c;开源的 Elasticsearch &#xff08;以下简称 es&#xff09;是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elasticsearch简称es&…

新版微头像V2.1.8版全套iApp源码

正文: 微头像 v2.1.8版全套iapp源码 1、海量头像精选&#xff0c;千万张找到最适合你的! 2、每日推荐热门头像&#xff0c;涵盖动漫、明星、二次元、可爱、等热门头像。让你瞬间焕发聊天活力! 3、提供多种分类&#xff0c;类别清晰明确&#xff0c;快速找到自己的爱好。让你…

怎样关闭qq位置定位服务器,手机qq怎么关闭定位

设置方法&#xff1a;首先打开手机QQ&#xff0c;点击“动态”——“附近”&#xff0c;点击“附近的人”右侧的漏斗图标&#xff0c;点击“清除位置信息并退出”即可完成操作。 QQ使用技巧&#xff1a;1、手机QQ可以关闭看点功能&#xff0c;首先打开手机QQ客户端&#xff0c;…

【Pytorch】DCGAN实战(三):二次元动漫头像生成

文章目录 1.实现效果2.环境配置2.1Python2.2Pytorch、CUDA2.3Python IDE 3.具体实现3.1数据预处理&#xff08;data.py&#xff09;&#xff08;1&#xff09;导入包&#xff08;2&#xff09;定义数据类 3.2模型Generator&#xff0c;Discriminator&#xff0c;权重初始化&…

【Pytorch学习】复现DCGAN训练生成动漫头像

先看一下结果&#xff1a; 1&#xff0c;环境安装指令 conda create -n pytorch python3.7 activate pytorch conda install pytorch torchvision torchaudio cudatoolkit11.3 -c pytorch pip install matplotlib pip install IPython pip install opencv-python 2&#xff0…

利用python+百度智能云为人物头像动漫化(附API代码及SDK代码)

文章目录 前言1.2、打开第一个搜索结果1.3、点击立即使用1.4、创建应用1.5、获取APPID等参数 二、API与SDK的使用1.API代码2.SDK使用2.1.首先下载python 的SDK&#xff1a;2.2.用编译软件打开aip-python-sdk-4.15.1文件夹并在aip目录下创建py文件2.3.SDK代码 总结 前言 利用py…