Conditional validation with Yup and Formik

前端 未结 2 799
孤城傲影
孤城傲影 2021-01-02 12:50

Here is my validation schema:

const validationSchema = Yup.object().shape({
      person: Yup.object().shape({
        name: Yup.string().required(\'Field is         


        
2条回答
  •  没有蜡笔的小新
    2021-01-02 13:43

    You can conditionally add to your validation schema just like any other object:

    let validationShape = {
      company: Yup.object().shape({
        name: Yup.string().required('Field is required'),
        address: Yup.string().required('Field is required'),
        email: Yup.string()
          .email('Wrong e-mail format')
          .required('Field is required')
      })
    };
    
    if (this.state.isPerson) {
      validationShape.person = Yup.object().shape({
        name: Yup.string().required('Field is required'),
        surname: Yup.string().required('Field is required'),
        middleName: Yup.string().required('Field is required'),
        email: Yup.string()
          .email('Wrong e-mail format')
          .required('Field is required');
    }
    
    const validationSchema = Yup.object().shape(validationShape);
    

提交回复
热议问题