关于ant-design表单问题


声明:本文转载自https://my.oschina.net/kaykie/blog/1580490,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

需求是这样的,当我改变名称的时候,编码会调用后端的一个接口,然后展示到页面上,像这类如果用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   }, ];

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

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

接下来是问题:

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

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

问题根源:

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

据我的理解,是在点保存的时候,页面把编码的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)     }   } }

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

本文发表于2017年11月27日 18:39
(c)注:本文转载自https://my.oschina.net/kaykie/blog/1580490,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1837 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1