Как обработать проверку для Redux-Form FieldArrays с Immutable.js? - PullRequest
0 голосов
/ 08 мая 2019

В настоящее время я использую redux-form / immutable, Wizard-Form и FieldArrays для создания многошаговой формы для проекта.Я в основном зацикливаюсь на том, как проверять массивы полей с помощью immutable.js.

Я следовал следующему примеру: https://redux -form.com / 8.1.0 / examples / immutable / для настройки валидации в файле validate.js с помощью immutable, но у меня также былследовать следующему примеру https://redux -form.com / 8.1.0 / examples / fieldarrays / , чтобы выяснить, как выполнить проверку для FieldArrays.

Следуя обоим примерам, я подошелсо следующим:

if (values.get('customTrips')) {
    const customTripArrayErrors = [];
    values.get('customTrips').forEach((member, memberIndex) => {
      const customTripMemberErrors = {};
      if (!member.get('from_location_address1') {
      }
    }
}

Когда я пытаюсь выполнить приведенный выше код, я получаю следующую ошибку:

Uncaught TypeError: Cannot read property 'get' of undefined

Мне просто нужна помощь, чтобы выяснить, как получить доступ к значениям элемента FieldArray в validate.js.

Любая помощь будет принята с благодарностью!Спасибо!

1 Ответ

0 голосов
/ 16 мая 2019

Моя идея была правильной, но я пропустил важный шаг при переходе к Redux-Form FieldArray.Вы должны убедиться, что при нажатии вы создаете новую карту, чтобы вы могли получить доступ к значениям с помощью get.Если вы не создадите новую карту и у вас console.log (member), вы увидите, что она не определена.Надеюсь, это поможет, так как это не было написано в документации Redux-Form!

import { Map } from 'immutable';

<FlatButton
  type="button"
  onClick={() => fields.push(new Map())}
  backgroundColor={Color.primary}
  hoverColor={Color.primaryDarkened}
  className="left"
  label="Add a Local Trip"
/>
...