解决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 autocomplete 使用手册
Apr 01 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
Nov 30 Javascript
js克隆对象、数组的常用方法介绍
Sep 26 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
IE下双击checkbox反应延迟问题的解决方法
Mar 27 Javascript
jquery css 设置table的奇偶行背景色示例
Jun 03 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
Aug 11 Javascript
Jquery 分页插件之Jquery Pagination
Aug 25 Javascript
JavaScript 完成注册页面表单校验的实例
Aug 19 Javascript
angular4+百分比进度显示插件用法示例
May 05 Javascript
原生js实现的观察者和订阅者模式简单示例
Apr 18 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
重置版宣传动画
2020/04/09 魔兽争霸
PHP制作图型计数器的例子
2006/10/09 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
js中将String转换为number以便比较
2014/07/08 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
python读取图片任意范围区域
2019/01/23 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Django框架模板用法入门教程
2019/11/04 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
通信工程毕业生自荐信
2013/11/01 职场文书
活动志愿者自荐信
2014/01/27 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
中文专业自荐书
2014/06/29 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
事业单位年度考核评语
2014/12/31 职场文书
中学后勤工作总结2015
2015/07/22 职场文书