У меня многоэтапная форма. На шаге есть кнопка «Далее», которая запускает метод nextStep
. В этом nextStep
я использую этот код, чтобы контролировать, следует ли мне выбрасывать ошибки или переходить на следующую страницу.
case (currentStep === 0 && isValueSet(formErrors.firstStep)):
setError(formErrors.firstStep);
break;
case (currentStep === 1 && isValueSet(formErrors.secondStep)):
setError(formErrors.secondStep);
break;
case (currentStep === 2 && isValueSet(formErrors.thirdStep)):
setError(formErrors.thirdStep);
break;
default:
this.setCurrentStep(currentStep + 1);
setError(...)
это просто throw new SubmissionError
, что я передаю throw mapDispatchToProps
:
const mapDispatchToProps = dispatch => ({
setError: errors => {
throw new SubmissionError(errors);
}
});
Иногда, когда вы открываете форму, на некоторых шагах уже есть ошибки. Однако, как только я неправильно заполню шаг и нажму «Далее», на шаге, который я сейчас использую, будут выделены его ошибки, и ошибки на всех других шагах исчезнут.
Итак, вот мой вопрос: SubmissionError
полностью переписывает свой внутренний "объект ошибки" с тем, что я передаю, без расширения или слияния?
Есть ли способ исправить это поведение? То есть обновить только некоторые поля или как-то использовать оператор распространения?