Как изменить параметр redux-формы shouldValidate в зависимости от изменения состояния
В настоящее время я использую избыточную форму и хочу, чтобы проверка выполнялась только на основе нажатой кнопки после отправки действия отправки в избыточную форму. В данный момент я изменяю состояние при нажатии кнопки, отправляя собственное действие и используя nextProps функции shouldValidate(), чтобы вернуть значение true или false в зависимости от значения в состоянии.
BriefForm = reduxForm({
form: "brief", // a unique name for this form
destroyOnUnmount: false,
forceUnregisterOnUnmount: false,
enableReinitialize: true,
keepDirtyOnReinitialize: false,
shouldValidate(params) {
if (params.nextProps && params.nextProps.submitButton === "save") {
return false
} else {
return true
}
},
validate
})(BriefForm);
Однако даже когда params.nextProps.submitButton === "save" преобразуется в значение true, а функция shouldValidate возвращает значение false, функция проверки формы по-прежнему выполняется. Я хочу, чтобы форма отправлялась, но не проверялась при нажатии кнопки "Сохранить", но в других случаях отправляю и проверяю, но кажется, что она не может быть динамичной?
1 ответ
Вы пытались использовать connect
от "реакции-редукса", чтобы пройти shouldValidate
редуцировать ()? Что-то вроде этого:
const mapStateToProps = state => ({
shouldValidate: ({ nextProps: getNextProps(state) }) => {
return nextProps && nextProps.submitButton === "save"
}
})
BriefForm = connect(
mapStateToProps
)(reduxForm({
form: "brief", // a unique name for this form
destroyOnUnmount: false,
forceUnregisterOnUnmount: false,
enableReinitialize: true,
keepDirtyOnReinitialize: false,
validate
})(BriefForm));