ReduxForm работает только в одну сторону - PullRequest
0 голосов
/ 11 июля 2019

У меня есть два Field в моем ReduxForm: одно поле select, другое radio button group. Когда я обновляю любой из них, состояние изменяется правильно, что я вижу, используя redux-dev-tools. Когда я изменяю поле select, radio button group изменяется соответственно, однако, наоборот, не работает. Что может быть причиной этого и как это исправить?

Возможно, не имеет значения (все еще может быть полезно посмотреть):

Состояние выглядит так:

fscoreFilter: {fscore: ['fscore_2', 0.5], qscore: ['qscore_1', 2.5]}

fscore и qscore - два radio button groups с соответствующими полями select. Начальное значение выглядит так:

fscoreFilter: {fscore: ['fscore_0', null], qscore: ['qscore_0', null]}

Мне это нужно, потому что для каждого из radio button group есть текстовое поле, которое позволяет вводить пользовательские значения. Radio button group позволяет ввести некоторые распространенные дискретные.

Для обновления состояния я использую метод onChange, формирующий на лету из переданного ему значения необходимое состояние. Так, например, Select onChange получает только число, которое я беру и преобразую в qscore: ['qscore_1', 2.5], объединяю с другим неизменным fscore и передаю его onChange, переданному компоненту, который в конечном итоге onChange из Field.

1 Ответ

0 голосов
/ 11 июля 2019

Проблема заключалась в том, что я не поставил value на верхний Select компонент. Итак, onChange Select (на самом деле Dropdown тип ввода) обновлял state, когда с ним взаимодействовали, а radio button group обновляло, потому что у него были заданы имена (но Select не было), но когда Select было перерисовано из-за radio button group изменения value внутри него не было изменено и установлено соответственно.

...