antd mobile 表单验证 rc-form 使用

文章目录

最基本使用

cnpm i rc-form -S

import React, { Component } from 'react'
import { InputItem } from 'antd-mobile'
import { createForm } from 'rc-form'

class Login extends Component {
	/** 3. 
     * 自定义的验证方式
     * @param {Object}   rule      可以在里面获取到验证对象(getFieldProps 的第一个参数对应)
     * @param {String}   value     输入框当前值
     * @param {Function} callback  触发失败的回调函数(返回错误信息)
     */
    validatorAccount = (rule, value, callback) => {
        callback(new Error('错误提示!'))
    }

    render() {
		// 1. 这里需要使用两个方法:
		// 方法一: getFieldProps : 设置验证方式
		// 方法二: getFieldError : 错误处理
        const { getFieldProps, getFieldError } = this.props.form;

        return (
            <div className="login">
                <div className="body">
                    <div className="login-account">
                        <InputItem
                            name="account"
                            clear
                            // 2. 绑定验证方法(第一个参数理解为key值)
                            {
                            ...getFieldProps('account', {
                                rules: [{ "validator": this.validatorAccount }]
                            })
                            }
                            // 3. icon 错误提示 (输入框后面添加一个小叉叉,表示该输入有问题)
                            error={!!getFieldError('account')}
                            // 4. 3产生的icon的回调函数(getFieldError返回验证方法中callback的提示信息)
                            onErrorClick={() => {
                                console.info(getFieldError('account'), 1);
                            }}
                            placeholder="手机号/邮箱/会员名"
                        >
                        </InputItem>
                    </div>
                </div>
            </div>
        )
    }
}

// 4. 还有一个比较重要的哦
export default createForm()(Login)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值