React Antd form.getFieldsValue() 和 form.getFieldsValue(true) 有区别吗?

探讨了 React Antd 中 form.getFieldsValue 方法的不同用法,特别是传入 true 参数时的区别。getFieldsValue 不传参数时返回所有注册字段,传入 true 则获取 store 中包括未注册字段的所有值,而传入数组则按路径获取特定值。
摘要由CSDN通过智能技术生成

背景

突然发现 antd 的 getFieldsValue()是可以传一个 true 参数的,如题,React Antd form.getFieldsValue() 和 form.getFieldsValue(true) 有区别吗?

验证

确实不一样
在这里插入图片描述
在这里插入图片描述

结论

getFieldsValue 提供了多种重载方法:

getFieldsValue(nameList?: true | NamePath[], filterFunc?: FilterFunc)
当不提供 nameList 时,返回所有注册字段,这也包含 List 下所有的值(即便 List 下没有绑定 Item)。

当 nameList 为 true 时,返回 store 中所有的值,包含未注册字段。例如通过 setFieldsValue 设置了不存在的 Item 的值,也可以通过 true 全部获取。

当 nameList 为数组时,返回规定路径的值。需要注意的是,nameList 为嵌套数组。例如你需要某路径值应该如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于使用 React Hooks 和 Ant Design 的 Form 组件来进行自定义文本框的校验,输入内容立即消失的问题,你可以尝以下方法: 1. 使用 useState Hook 来踪输入框的值,并在输入框值生变化时更新状态。 2. Form 组件的 onFinish 回调函数中进行校逻辑。可以通过检查输入框的是否符合要求来决定是否提示错误信息。 3. 使用 Ant Design 的 message 组件来显示错误提示信息。可以校验失败时调 message.error() 方法来显示信息,并在校验成功时用 message.success() 方法消除提示信息。 以下一个示例代码: ```jsximport React, { useState 'react'; import { Form, Input, Button, message } from 'antd'; const MyCustomRichTextEditor = () => { const [content, setContent] = useState(''); const onFinish = (values) => { //行校验逻辑 if (content === '') { message.error('内容不能为空'); return; } // 校验通过,提交表单 // ... // 提示信息消失 message.success('提交成功'); }; return ( <Form onFinish={onFinish}> <Form.Item name="content" rules={[{ required: true, message: '请输入内容' }]} > <Input.TextArea value={content} onChange={(e) => setContent(e.target.value)} /> </Form.Item> <Form.Item> <Button type="primary" htmlType="submit"> 提交 </Button> </Form.Item> </Form> ); }; export default MyCustomRichTextEditor; ``` 在上面的代码中,我们使用 useState 来追踪输入框的值,并在输入框值发生变化时更新状态。在 onFinish 回调函数中,我们进行了校验逻辑,如果发现内容为空,则使用 message.error() 方法显示错误信息,否则使用 message.success() 方法显示提交成功的提示信息。 希望这个示例能解决你的问题!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zoe_ya

如果你成功申请,可以打赏杯奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值