解决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 相关文章推荐
js自带函数备忘 数组
Dec 29 Javascript
一句话JavaScript表单验证代码
Aug 02 Javascript
js打印纸函数代码(递归)
Jun 18 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
jQuery如何取id有.的值一般的方法是取不到的
Apr 18 Javascript
jquery中实现时间戳与日期相互转换
Apr 12 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
微信小程序request出现400的问题解决办法
May 23 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
Feb 11 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
示例vue 的keep-alive缓存功能的实现
Dec 13 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
node.js的事件机制
2017/02/08 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
老生常谈ES6中的类
2017/07/31 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
Python 闭包的使用方法
2017/09/07 Python
基于python实现百度翻译功能
2019/05/09 Python
python 动态调用函数实例解析
2019/10/21 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
python实现按日期归档文件
2021/01/30 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
毕业生教师求职信
2013/10/20 职场文书
生物专业个人自荐信范文
2013/11/29 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
车间主任岗位职责
2015/02/03 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android