欢迎来到代码驿站!

vue

当前位置:首页 > 网页前端 > vue

在antd4.0中Form使用initialValue操作

时间:2021-04-08 10:36:53|栏目:vue|点击:

悲伤

一开始一直以为initialValue是个好东西,这样我每次编辑的时候把数据传过来就行,后来发现不得行!给大家看看

就离谱,后面认真看了一下文档才知道这个玩意是默认值,第一次有了之后就一直是这个。

然后我在网上看用resetFields()这个方法,每次提交或者取消之后重置一下数据,然而我试了还是不得行,会变成每次点击显示的是上一次的数据,所以后面还是老老实实看了一下form的其他方法。

贴个图

解决

放弃initialValue

const [form] = useForm()

form.setFielsValue(currentItem)

用form带的设置数据方法。这样能够保证每次都是最新的。

随手一贴

也没啥上下文,就将就着看写法就行!!

 const { visible, onEdit, onCancel, type, currentItem, ...modalProps } = props;
 const [form] = useForm()
 useEffect(() => {
 form.setFieldsValue({ ...currentItem });
 }, [visible])

 const onOk = () => {
 form.validateFields().then((values: any) => {
 onEdit(values)
 })
 }

补充知识:antd Form表单initialValue设置无效的问题之一

在表格数据中,编辑数据时用到的表单需要使用initialValue 来设置初始值,

以下写法会导致initialValue设置无效。

当表单组件被<></> ,< div></ div> 等包裹时,initialValue设置无效

// initialValue 设置无效的写法
<Form.Item label="xxx">
 {getFieldDecorator('xxx',{
 initialValue:'default'
})(
 <>
 <Input />
 <span>....</span>
 </>
) 
 }
</Form.Item>

// 正确的写法
<Form.Item label="xxx">
 {getFieldDecorator('xxx',{
 initialValue:'default'
})(
 <Input />
) 
 }
 // <span></span>
</Form.Item>

上一篇:微信内置开发 iOS修改键盘换行为搜索的解决方案

栏    目:vue

下一篇:Vue Render函数原理及代码实例解析

本文标题:在antd4.0中Form使用initialValue操作

本文地址:http://www.codeinn.net/misctech/96723.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有