解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题


Posted in Javascript onOctober 29, 2020

场景描述:

如下图所示,点击减免天数会出现一个弹窗, 输入天数后点击确定,保存这个值, 但是我在点第二行的减免天数的时候初始应该是空的, 可是现在显示的是第一行输入的值;

解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题

解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题

<Modal
 title="减免天数"
 visible={that.state.visible}
 onOk={that.handleOk.bind(that)}
 onCancel={that.handleCancel}
 >
 <Form horizontal form={form}>
 <FormItem {...{labelCol: { span: 5 }, wrapperCol: { span: 16 }}} label="减免天数:">
 <InputNumber min={0} step={1} {...{style: {width: 120}}} {...getFieldProps('currValue',{

 initialValue: that.state.currInputValue,

 rules: [
  {required: true,message:"减免天数不能为空"}
 ]
 })} />
 </FormItem>
 </Form>
</Modal>

问题分析:

当我们第一次点开Modal的时候, FormItem会得到一个initialValue,但是这个值只在组件挂载的时候执行了一次, 当我们再次打开Modal窗口的时候并不会更新。

好了发现问题所在了, 接下来就是解决了~

解决方法:

Modal窗口我们都有应用一个Visible来控制是否显示, 我们只要利用这个值得变化就可以实现Modal组件的重新挂载了。

{ Visible && <Modal ....../> }

补充知识:antd4中Form组件initialValues设置初始值无效,使用setFieldsValue动态赋值,getFieldsValus动态获取值

首先说明initialValues这个属性,这个属性antd官方给的是设置Form组件初始值,但是有个问题如果值从后端请求那么initialValues可能会设置不上,如果说用匿名组件的话,修改From组件会导致一系列问题,

接下来就是用到了setFieldsValue和getFieldsValus属性

在antd官网中说明form组件不能使用this.setState修改值,

只能通过setFieldsValue来设置,

通过getFieldsValus来获取

首先通过getFieldsValus来动态获取值

export default class List extends Component {
 //第一步
 formRef = React.createRef();
 }

第二步

使用ref

<Form
  {...layout}
  name="basic"
  //这里 formRef在第一步中可以看到
  ref={this.formRef}
  
  //initialValues 设置初始值
  initialValues={this.state.formInitValues}
  //validateMessages 统一处理错误信息
  validateMessages={this.validateMessages}
  //form submit点击之后成功回调
  onFinish={onFinish}
  //form submit点击之后失败回调
  onFinishFailed={onFinishFailed}
 >
 </Form>

使用setFieldsValue

注意:sell_linkman是Form中item的字段名,需要给那个字段赋值用这个就ok,可以写在你事件中

this.formRef.current.setFieldsValue({
 sell_linkman: value,
 })

使用getFieldsValue

‘sell_linkman'是form中item字段名

this.formRef.current.getFieldsValue('sell_linkman')

有什么不懂的欢迎各路大神指正,不懂可以留言。

以上这篇解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery页面图片切换和新闻列表滚动效果的具体实现
Sep 26 Javascript
无刷新预览所选择的图片示例代码
Apr 02 Javascript
浅析javascript中函数声明和函数表达式的区别
Feb 15 Javascript
JavaScript实现在页面间传值的方法
Apr 07 Javascript
javascript数组去重的方法汇总
Apr 14 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
vue中动态添加class类名的方法
Sep 05 Javascript
七行JSON代码把你的网站变成移动应用过程详解
Jul 09 Javascript
Vue打包后访问静态资源路径问题
Nov 08 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 Javascript
vue 使用原生组件上传图片的实例
Sep 08 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
Oct 29 #Javascript
解决ant Design Search无法输入内容的问题
Oct 29 #Javascript
js实现随机圆与矩形功能
Oct 29 #Javascript
在vue中使用jsonp进行跨域请求接口操作
Oct 29 #Javascript
基于react项目打包css引用路径错误解决方案
Oct 28 #Javascript
design vue 表格开启列排序的操作
Oct 28 #Javascript
ant design vue导航菜单与路由配置操作
Oct 28 #Javascript
You might like
php 伪静态之IIS篇
2014/06/02 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
python装饰器decorator介绍
2014/11/21 Python
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python读取sqlite数据库文件的方法分析
2017/08/07 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python爬虫增加访问量的方法
2019/08/22 Python
Python配置文件处理的方法教程
2019/08/29 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
英文简历中的自我评价
2013/10/06 职场文书
毕业生自荐信的主要内容
2013/10/29 职场文书
出纳担保书范文
2014/04/02 职场文书
物流管理专业求职信
2014/05/29 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
北京故宫的导游词
2015/01/31 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang