Как изменить параметр 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));
Другие вопросы по тегам