博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于ant-design表单问题
阅读量:6910 次
发布时间:2019-06-27

本文共 2020 字,大约阅读时间需要 6 分钟。

  hot3.png

165227_zYxa_3434133.png

需求是这样的,当我改变名称的时候,编码会调用后端的一个接口,然后展示到页面上,像这类如果用state,setState的话也是非常方便就能解决的,但是这个页面涉及编辑,新增,如果单独拿一个state的值来设,感觉有些不爽,而且目前用的redux-saga来写的全局代码,不准备用state.

下面是这个区域代码

const modalItems = [  {    type: 'select',    label: '设备类型',    paramName: 'equipTypeId',    initialValue: comeFromEdit.equipTypeId || this.props.myDeviceType[0] ? this.props.myDeviceType[0].value : '',    span: 12,    width: 138,    option: [      ...this.props.myDeviceType    ],    rules: rules.requiredSelect  },  {    type: 'input',    label: '设备名称',    paramName: 'equipName',    initialValue: comeFromEdit.equipName || '',    placeholder: '请输入',    span: 12,    onBlur: this.equipNameChange.bind(this),    width: 138,    rules: rules.required  },  {    type: 'text',    label: '设备编码',    paramName: 'equipCode',    initialValue: comeFromEdit.equipCode || '',    span: 12,    width: 138,    rules: rules.required  },  {    type: 'input',    label: '设备型号',    paramName: 'equipModel',    initialValue: comeFromEdit.equipModel || '',    placeholder: '请输入',    span: 12,    width: 138,  },  {    type: 'input',    label: '制造厂家',    paramName: 'equipCompany',    initialValue: comeFromEdit.equipCompany || '',    placeholder: '请输入',    span: 12,    width: 138  },  {    type: 'input',    label: '出租方',    paramName: 'lessor',    initialValue: comeFromEdit.lessor || '',    placeholder: '请输入',    span: 12,    width: 138,    rules: rules.required  },];

页面会根据这些数据然后驱动页面生成信息.

我把所有的初始值都直接先放上去了.

接下来是问题:

当我没有点保存的时候,编码会根据名称的变化而变化,

当我点了保存后,编码则不动了.

问题根源:

165817_iACf_3434133.png

根据官方页面介绍,看不出什么原因(反正我看不明白).

据我的理解,是在点保存的时候,页面把编码的initalValue设置成了value,而value会把initalValue给覆盖了,再不能用initalValue来改变值了,事实也证明了这一点,我在react生命周期里,通过this.props.form.setFeildsValue()方法来改变编码的值就行的通了.代码如下:

componentWillReceiveProps(nextProps){  if(nextProps.comeFromEdit.equipCode !== this.props.comeFromEdit.equipCode){    try{      this.props.form.setFieldsValue({        equipCode:nextProps.comeFromEdit.equipCode      })    }catch (e){      console.log(e)    }  }}

多踩一个坑,以后就少一个!

转载于:https://my.oschina.net/kaykie/blog/1580490

你可能感兴趣的文章
设计模式--装饰者理解
查看>>
文件迁移:将/home迁移到一个独立分区中
查看>>
网站seo如何利用指令查询网站收录
查看>>
Python语音识别终极指北,没错,就是指北!
查看>>
python脚本按表备份MySQL数据库
查看>>
【shell】Linux shell 之 打印99乘法表详解
查看>>
lvs 笔记
查看>>
实用技巧:在Linux下设置xhost方法步骤
查看>>
nio Selector 阻塞 唤醒 原理
查看>>
左旋转字符串
查看>>
整理linux平台下的vim插件配置,减少到11M,简化安装
查看>>
解决CentOS 7.0 VMware虚拟机没有网卡,配置网卡信息
查看>>
PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计...
查看>>
全局NSTimer导致的内存泄露及解决办法
查看>>
获取认证用户的相关信息 spring MVC的security模块
查看>>
Spring cloud Netflix中的超时配置
查看>>
VVDocumenter-Xcode
查看>>
System.out.printf() 格式化输出,快捷打印出当前时间
查看>>
Mysql 慢查询和慢查询日志分析
查看>>
android中listview的getView方法不调用的一种情况
查看>>