React在进行form校验时,有两种方案
官方文档
yarn add formik
import { useFormik } from 'formik';
initialValues:初始化 输入框的密码和账号
onSubmit:当点击提交按钮时,调用这个钩子,拿到输入框的vaule值
这里打印一下 formik可以看到有很多钩子函数可以使用
const formik = useFormik({initialValues: {mobile: '',code: ''},validate,onSubmit: values => {// 拿到输入框的值console.log(values);},});console.log(formik);
进行校验结果的控制
import React from 'react'
import NavBar from '../NavBar/NavBar'
import style from './dule.scss'
import Input from '../Input/input.js'
// 导入表单验证的formik
import { useFormik } from 'formik';
//导入校验验证规则yup
//import * as yup from 'yup';
const validate = values => {const error = {}if (!bile) {bile = '手机号不能为空'}if (!de) {de = '验证码不能为空'}return error
}
export default function Login() {const formik = useFormik({initialValues: {mobile: '',code: ''},validate,onSubmit: values => {// 拿到输入框的值console.log(values);},});console.log(formik);return (<div className={}><NavBar>登录</NavBar><div className='content'><h3>短信登录</h3><form onSubmit={formik.handleSubmit}><div className='input-item'><Inputname='mobile'placeholder='请输入手机号'value={bile}onChange={formik.handleChange}onBlur={formik.handleBlur}/>{bile && bile ? < div className='validate'>{bile}</div> : null}<div className='input-item'><Inputplaceholder='请输入验证码'extra='获取验证码'name='code'onChange={formik.handleChange}onBlur={formik.handleBlur}value={de} />{de && scode ? <div className='validate'>{de}</div> : null}</div><button type='submit' className='login-btn'>登录</button></div></form></div ></div >)
}
上面的校验规则看起来不是很方便,使用yup会方便很多,可以去官网看看,非常简单。相信都可以看明白
yup:
本文发布于:2024-01-30 21:41:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170662210123026.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |