Форма Redux, почему asyncBlurFields вызывает API в keydown вместо onblur? - PullRequest
0 голосов
/ 07 марта 2019

У меня проблема с редукс-формой, asyncblurfield.

У меня есть 3 текстовых поля в форме, как показано ниже: [MissionName], [MissionDescription], [TrackerID]

Каждый раз, когда пользователь вводит идентификатор TrackerID и переходит к следующему полю ввода. Он вызовет API для проверки правильности идентификатора TrackerID.

Вот моя проблема. Когда пользователь вводит значение в любое из этих полей ввода, он вызывает API на клавише вниз.

Вот мой код:

const reduxFormState = {
  form: 'createMission',
  destroyOnUnmount: false,
  forceUnregisterOnUnmount: true,
  asyncValidate: checkTrackerID,
  asyncBlurFields: ['trackerID'],
  persistentSubmitErrors: false,
  validate(values, props) {
    const {
      formMeta
    } = props;
    const __ = props.gettext;
    const errors = {};

    if (values.missionName === '' && formMeta.missionName && formMeta.missionName.touched) {
      errors.missionName = __('This field may not be blank');
    }
    return errors;
  },
  onSubmitSuccess(result, dispatch, props) {
    const {
      values
    } = props;
    const {
      mission
    } = result;
    const missionName = mission.mission.code;
    const __ = props.gettext;
    const notificationPayload = {
      untoActionTitle: 'View',
      undoAction: {
        type: 'GO_TO_MISSION',
        link: `missions/detail/${mission.mid}`
      }
    };

    if (values.createAnother) {
      props.initialize({
        template: values.template,
        missionName: '',
        missionDescription: '',
        trackerID: '',
        follow: true,
        createAnother: true
      });
    } else {
      dispatch(reset('createMission'));
      dispatch(closeCreateMissionDialog());
      dispatch(resetNewMission());
    }

    dispatch(addNotification(sprintf(__('Mission "%s" has been successfully created'), missionName), notificationPayload));
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...