如何在ant 的表单Form.Item下获取自定义表单元素的值

本文介绍了在Ant Design的Form.Item下如何获取自定义表单元素的值,提供了两种解决方案。一种是通过Form.Item的嵌套来分别获取每个表单项的值,另一种是创建自定义组件并利用onChange方法将多个值返回给FormItem。通过自定义组件,可以将多个Select的值组合成一个对象返回,从而在父组件中通过getFieldsValue获取到完整的数据。
摘要由CSDN通过智能技术生成

如何在ant 的表单Form.Item下获取自定义表单元素的值

有时我们会遇到开发需求 一个FormITem下有多个表单项的值需要获取,这时候我们就需要自定义表单元素,来获取 ,举例来说 假如我一个Form.Item有多个表单项

 <FormItem name="select",label="多个选择">
         <Select>
			  <Option label="漩涡鸣人" value="xuanwo"> 漩涡鸣人</Option>
  			  <Option label="玖辛奈" value="jiuxinnai"> 玖辛奈</Option>
         </Select>
         <Select>
			 <Option label="宇智波佐助" value="zuozhu"> 宇智波佐助</Option>
             <Option label="宇智波鼬" value="you"> 宇智波鼬</Option>
         </Select>
 </FormItem>

这时候问题出现了 ,只能获取一个的值,但是两个值我都想要咋办,
这时候有两个办法

第一个 Form.Item进行嵌套也是可以的

<FormItem label="选择项">
	<FormItem name="select1" >
		<Select>
			  <Option label="漩涡鸣人" value="xuanwo"> 漩涡鸣人</Option>
  			  <Option label="玖辛奈" value="jiuxinnai"> 玖辛奈</Option>
         </Select>
	</FormItem>
	<FormItem name="select2" >
		<Select>
			 <Option label="宇智波佐助" value="zuozhu"> 宇智波佐助</Option>
             <Option label="宇智波鼬" value="you"> 宇智波鼬</Option>
         </Select>
	</FormItem>
</FormItem>

这样可以分别获取其值
第一种我们通过getFiledsValue方法获取的值就是
{select1:”xuanwo“,select2:“zuozhu” }

第二种方法我们可以自定义组件

 <FormItem name="select",label="多个选择">
      //自定义组件
      <Test  />
  </FormItem>
  class Test extends Component{
    state={
    }
  
    testChange=(items)=>{
        let   {value={},onChange}=this.props
        onChange({test:items,...value})  //value解构后和 test:items组成新的对象
    }
    testChange2=(items)=>{
        let {value={},onChange}=this.props
        onChange({test2:items,...value})
    }
    render(){  
      return(
        <div>
            <Select onChange={this.testChange}   >
              <Option label="漩涡鸣人" value="xuanwo"> 漩涡鸣人</Option>
               <Option label="玖辛奈" value="jiuxinnai">玖辛奈 </Option>
            </Select>
            <Select onChange={this.testChange2}   >
             <Option label="宇智波佐助" value="zuozhu">宇智波佐助</Option>
             <Option label="宇智波鼬" value="you">宇智波鼬</Option>
           </Select>
     </div>
      )
    }
}

我来理解的这个方法是把onChange函数 和value值传到我们自定义的组件里面去,然后子组件的select调用onChange方法可以返回给FormItem的value值,
这种方法最终通过getFIledsValue调用打印出来的值是这种类型的{select:{test1:"xuanwo",test2:"zuozhu"}

各位大佬有不对之处 还请多多指教 😘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值