redux-form: как отправить изменение в нормализаторе

Использование редукционной формы 6.0.1

У меня есть форма с 2 полями. Один селектор, другой вход.

      <Field name="toLanguage" component="select" normalize={normalizeLanguage}>
        {languages.map(function(item) {
          return <option key={item.id} value={item.name}>{item.display}</option>;
        })}
      </Field>

      <Field name="toValue" component="input" type="text" placeholder="toLanguageString" />

Я хотел бы изменить содержимое изменения ввода в зависимости от состояния поля выбора. Я читал о том, как это можно сделать здесь: https://github.com/erikras/redux-form/issues/442

Поэтому, чтобы попробовать, я продолжил отправку изменений вручную.

<button type="button" onClick={() => dispatch(change('TranslationDetail', 'toValue', 'foo')) }>dispatch</button>

Это работает, но это был наименее рекомендуемый метод. Когда я попытался использовать нормализатор, я столкнулся с ошибкой «Uncaught ReferenceError: изменение не определено». Как мне изменить свой нормализатор, чтобы изменить значение поля в зависимости от состояния селектора?

const normalizeLanguage = (value, previousValue, dispatch) => {
  if (!value) {
    return value
  }
  console.log(value)
  dispatch(change('TranslationDetail', 'toValue', value))
  return value
}

export default normalizeLanguage

person balu000    schedule 30.08.2016    source источник


Ответы (1)


Вероятно, вам не хватает ссылки на функцию change. Включите следующую строку в свои импортные декларации:

import {change} from 'redux-form';
person DinoMyte    schedule 14.03.2017