множественная Redux-форма с formValueSelector - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь создать несколько форм, которые имеют надежные выпадающие списки.В зависимости от выбора в раскрывающемся списке1 отображаются некоторые поля и заполняется другой раскрывающийся список.

Чтобы выполнить несколько форм, мне необходимо передать уникальный ключ формы, например:

panels.map(panel =>
  <PanelForm key={panel.uuid} form={`PanelForm_${panel.uuid}`} />
)

Однакочтобы соединиться с состоянием для изменений, я должен использовать избыточный formValueSelector, который требует, чтобы установить для него переданное имя формы, которое является динамическим, и я не знаю, как передать его здесь ...

const selector = formValueSelector('PanelForm_XXXX')
                                    ^^^^^^^^^^^^^^
const FormConnectDecorator = connect((state) => {
  const category = selector(state, 'category')
  return {
    category,
  }
})(Form)

const FormDecoratedComponent = reduxForm()(FormConnectDecorator)

Мне нужно соединить форму с состоянием редукса, чтобы прочитать значение категории, но не могу передать ему правильное значение имени динамической формы.

1 Ответ

0 голосов
/ 17 июня 2019

После немного большего просмотра, поскольку formValueSelector возвращает функцию, решение состоит в том, чтобы использовать ее в mapStateToProps.Кредиты rizedr на https://github.com/erikras/redux-form/issues/1987

const mapStateToProps = (state, initialProps) => {
  return {
    category: (formValueSelector(initialProps.form))(state, 'category'),
  };
};
const FormConnectDecorator = connect(mapStateToProps)(Form)

const FormDecoratedComponent = reduxForm()(FormConnectDecorator)

export default FormDecoratedComponent

@ Mods - не стесняйтесь удалять этот вопрос, если хотите.Ответ уже существует в закрытых выпусках GitHub-формы GitHub, ссылка приведена выше.

...