ANTD FORM表单 自定义组件 取值

1.受控组件

当使用 React 进行一些用户输入或者选择的行为时,我们需要拿到用户输入或选择,即将输入框设置为受控组件。

import { createForm, formShape } from 'rc-form';
 
class Form extends React.Component {
  static propTypes = {
    form: formShape,
  };
 
  submit = () => {
    this.props.form.validateFields((error, value) => {
      console.log(error, value);
    });
  }
 
  render() {
    let errors;
    const { getFieldProps, getFieldError } = this.props.form;
    return (
      <div>
        <input {...getFieldProps('normal')}/>
        <input {...getFieldProps('required', {
          onChange(){},  // have to write original onChange here if you need
          rules: [{required: true}],
        })}/>
        {(errors = getFieldError('required')) ? errors.join(',') : null}
        <button onClick={this.submit}>submit</button>
      </div>
    );
  }
}
 
export createForm()(Form);

 

  1. 通过 createForm()(Form) 使得组件 Form 的 props 上挂载了一个 form 对象,并且这个 this.props.form 对象有 getFieldProps 、 getFieldError 和 validateFields 三个方法

  2. 直接在 input 上挂载 rc-form 的属性即可将 input 设置为受控组件

<form>
  <input {...getFieldProps('name', { ...options })} />
</form>

 

2. API

 3、开关Switch

开关Switch,默认值选中和未选中的checked的类型为 布尔类型,现在需要将类型改为字符串(Number同理)

getValueFromEvent设置如何将 event 的值转换成字段值(..args: any[]) => any
			 <Switch
                checkedChildren={"是"}
                unCheckedChildren={"否"}
                checked={this.state.checked}
                {...getFieldProps(value.field, {
                    initialValue: selectValue ? selectValue : value.initValue,
                    onChange: (v) => {
                      ...
                    },
                    getValueFromEvent: value => {  // 判断类型
                      return value ? '0' : '1';
                    }
                  })}
            />

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值