解决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 相关文章推荐
表单(FORM)的一些实用效果代码
Mar 25 Javascript
javascript 数组排序函数sort和reverse使用介绍
Nov 21 Javascript
Jquery在指定DIV加载HTML示例代码
Feb 17 Javascript
jQuery使用$.ajax提交表单完整实例
Dec 11 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
从零学习node.js之mysql数据库的操作(五)
Feb 24 Javascript
使用vuex缓存数据并优化自己的vuex-cache
May 30 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
微信小程序之裁剪图片成圆形的实现代码
Oct 11 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 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
杏林同学录(八)
2006/10/09 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
VSCode下配置python调试运行环境的方法
2018/04/06 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
Python 实现微信自动回复的方法
2020/09/11 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
地理科学专业毕业生求职信
2013/10/15 职场文书
好人好事事迹材料
2014/02/12 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
无工作证明怎么写
2015/06/15 职场文书
小学班长竞选稿
2015/11/20 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python