У меня есть эта схема проверки для формы, созданной с использованием withFormik()
, используемой в моем приложении React, Здесь validateJql()
- это моя пользовательская функция проверки для yup
validationSchema: Yup.object().shape({
rework: Yup.string().required("Rework query is required").validateJql(),
originalEstimate: Yup.string().required("Original Estimate query is required").validateJql()
})
, и мой компонент формы похож наthis:
const addSomeForm = (props) => {
const {
values,
touched,
errors,
isSubmitting,
handleChange,
handleSubmit,
} = props;
return (
<form onSubmit={handleSubmit}>
<div className="form-group">
<div>
<label htmlFor="name" className="col-form-label"><b>Rework Query:</b></label>
<textarea id="query.rework" rows="5" type="text" className="form-control" placeholder="Enter JQL with aggregate Function" value={values.query.rework} onChange={handleChange} required />
{errors.query && errors.query.rework && touched.query && <span className="alert label"> <strong>{errors.query.rework}</strong></span>}
</div>
</div>
<div className="form-group">
<div>
<label htmlFor="name" className="col-form-label"><b>Original Estimate:</b></label>
<textarea id="query.originalEstimate" rows="5" type="text" className="form-control" placeholder="Enter JQL with aggregate Function" value={values.query.originalEstimate} onChange={handleChange} required />
{errors.query && errors.query.originalEstimate && touched.query && <span className="alert label"> <strong>{errors.query.originalEstimate}</strong></span>}
</div>
</div>
</form>
)
Теперь я хочу не запускать проверку при отправке формы, если поля rework
и originalEstimate
не затронуты и также не пусты.Как я могу добиться этого с withFormik
HOC или Yup
?Я частично прошел через Yup
документы и Formik
документы, но не смог найти что-то подходящее для моей проблемы.
Это тот случай, когда вы отправляете форму один раз и редактируете после нее незначительные изменения в некоторых из этих нескольких полей.если есть несколько полей и редактируются только некоторые, я не хочу запускать проверку для всех существующих полей.
Заранее спасибо.