Я работаю с Formik, и у меня возникла проблема с проверкой заполнения поля. Внутри <Formik>
в зависимости от состояния я отрисовываю формы с помощью ввода. Если поля не заполнены, сделать кнопку «Далее» отключить. Как сделать проверку только на тех полях, которые отображаются?
displayForms = (values, step) => {
const formsComponents = {
1:<Step1 {...values} />
2:<Step2 education={values.education}/>,
};
switch (step) {
case 1:
return formsComponents[1];
case 2:
return formsComponents[2];
default:
return formsComponents[1];
}
};
<Formik
ref={this.resume}
initialValues={this.initialValues}
validate={values => {
if (values) {
return !value ? "Required" : "";
}
}}
render={({ values, isValid }) => {
return (
<Form>
<div className="jobs-resume-panes">
{this.displayForms(
values,
isValid,
this.state.activeStep
)}
</div>
<div className="jobs-resume-controls">
{activeStep === allSteps ? (
<button
onClick={() => this.submitResume(values, isValid)}
>
Save
</button>
) : (
<button
disabled={this.state.isDisabled}
onClick={this.goNextStep}
>
Next
</button>
)}
</div>
</div>
</Form>