formik中如何同时进行提交和字段验证?

问题描述 投票:0回答:1

我想使用formik在提交时验证表单,同时也进行字段级别验证。例如,提交时验证所有字段,并在更改时验证字段。

 return (
    <div className='add-member'>
      <h1>Register a new member</h1>
      <Formik
        validationSchema={validationSchema}
        validateOnBlur={false}
        validateOnChange={false}
        initialValues={{ name: ''}}
        onSubmit={() => {
          console.log('something')
        }}
      >
        {({errors}) => (
          <Form>
            <div className='member-info'>
              <div className='title'><p>Info</p></div>
        
              <div className='input' id='name-input'>
                <label>Name</label>
                <Field name='name' placeholder={errors.name ? '*Required' : null} className={errors.name ?      'input-error' : ''} />
              </div>
      </Formik>
    </div>
  )
 

我在 Formik 组件中禁用了 validateOnChange,以便提交验证有效,但不知道如何验证更改时的字段。

javascript html reactjs forms formik
1个回答
0
投票

嗯,您可以尝试使用 Yup 和validationSchema 进行表单验证。 而且你应该使用

useFormik
钩子而不是
Formik
组件。

然后你可能会得到正确的答案。

例如

const formik = useFormik({
    initialValues,
    validationSchema: registrationSchema,
... the code that you want
const registrationSchema = Yup.object().shape({
fieldName: Yup.string()
.oneOf([Yup.ref('')], "example commit"),

也许,你会成功。

© www.soinside.com 2019 - 2024. All rights reserved.