小编Jus*_*ion的帖子

React + Formik + 是的异步验证

Formik + yup 验证与 .test() 触发每个字段的更改

示例:我有一个验证架构:

const schemaValidation = yup.object().shape({
  name: yup.string().required(),
  email: yup.string().email().required()
    .test( // it runs even if previous validation failed!
      'checkEmailExists', 'email already taken.',
      // it triggers on every onBlur
      email => { console.log('email registration runs') return Promise.resolve(true)}
    ),
  other: yup.string().required()
     .test(
      'checkOthers', 'error', 
      val => {console.log('other validation runs'); return Promise.resolve(true)}
    )
})
Run Code Online (Sandbox Code Playgroud)

我的反应组件上的渲染功能如下所示:

...
render () {
 return(
  <Formik
    validateOnChange={false}
    validateOnBlur={true}
    initialValues={{
      name: '',
      email: '',
      other: ''
    }}
    validationSchema={schemaValidation}
    onSubmit={this.handleSubmit}
  >
    {(props) => ( …
Run Code Online (Sandbox Code Playgroud)

reactjs yup formik

5
推荐指数
1
解决办法
3462
查看次数

标签 统计

formik ×1

reactjs ×1

yup ×1