[React] Antd Form getFieldValue 的使用、DatePicker 禁用日期 disabledDate

在表单中,有时需要根据表单项的不同选择,对下面的表单项进行不同的显示,也就是说,后面的表单项依赖于前面的表单项,这时是可以使用getFieldValue 获取依赖项的值进行判断,从而显示不同的内容

<FormItem noStyle shouldUpdate={(prevValues, currentValues) => currentValues.rejected_reason !== prevValues.rejected_reason}>
 {({getFieldValue, resetFields}) => {
   return (
     getFieldValue('rejected_reason') === '其他' ? (
       <Form.Item wrapperCol={{span: 10, offset: 2}} name='otherRejectedReason' style={{width: '1110px'}}>
         <TextArea showCount maxLength={20} placeholder='请输入审核意见(审核不通过将意见通知用户)' />
       </Form.Item>
     ): null
   )
 }}
</FormItem>

比如上面代码,当审核不通过原因选择其他时,显示一个 TextArea 让用户填写

在这里插入图片描述
在这里插入图片描述

Antd 日期组件的选择

比如某个表单项,只能选择某个日期之后的日期

<Form.Item label='确诊时间' name='diagnosed_at' rules={utils.form.setRules({type: 'date'})}>
  <DatePicker
    style={{width: '300px'}}
    format='YYYY年MM月DD日'
    disabledDate={(cur) => cur && cur > moment().endOf('day')}
  />
</Form.Item>
不能选择今天之后的
disabledDate={(cur) => cur && cur > moment().endOf('day')}

不能选择今天之前的
disabledDate={(cur) => cur && cur < moment().endOf('day’)}
 // 意外发生时间限制在入会时间之后
  const accidentOccurrenceDisabledDate = (cur) => {
    return validFrom && moment(validFrom * 1000) > moment(cur)
  }

  // 治疗时间限制在意外发生时间之后
  const recuperateDateDisabledDate = (cur, accidentOccurrence) => {
    return accidentOccurrence && accidentOccurrence > moment(cur)
  }

  // 治疗时间应该限制在入会时间的30天后
  const recuperateDateOfSeriousDiseasesDisabledDate = (cur) => {
    return moment(validFrom * 1000).add(30, 'days') > moment(cur)
  }

  // 确诊时间限制在入会时间5天之后
  const diagnosedAtDisabledDate = (cur) => {
    return validFrom && moment(validFrom * 1000).add(5, 'days') > moment(cur)
  }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
React Antd Form是一个基于React框架的组件库,用于快速构建表单。在使用React Antd Form时,常常会遇到需要在表单中进行赋值的情况。 React Antd Form提供了多种赋值方式,下面分别介绍常用的两种方式: 1. setFieldsValue setFieldsValue方法用于直接设置表单数据。可以使用该方法将已有的数据赋值给表单中的相应字段。该方法接收一个对象作为参数,对象的属性名对应表单中的字段名,属性值对应表单中的数据。 使用示例: const data = { name: 'Jack', age: 28 }; form.setFieldsValue(data); 在上面的示例代码中,我们将一个包含name和age属性的对象data直接赋值给表单form。 2. initialValues initialValues属性用于在表单初始化时设置初始值。该属性接收一个对象作为参数,对象的属性名对应表单中的字段名,属性值对应表单中的数据。 如果需要动态地修改表单中的初始值,可以将initialValues属性作为Form组件的props传入,在表单初始化后再通过setFieldsValue方法进行修改。 使用示例: const data = { name: 'Jack', age: 28 }; <Form initialValues={data}> <Form.Item label="Name" name="name"><Input /></Form.Item> <Form.Item label="Age" name="age"><InputNumber /></Form.Item> </Form> 在上面的示例代码中,我们将包含name和age属性的对象data作为initialValues传入表单组件中。 总的来说,虽然React Antd Form提供了多种赋值方式,但常见的数据赋值需求基本可以通过使用setFieldsValue方法和initialValues属性来完成。用户可以根据实际需求选择合适的方式来进行赋值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值