не работает атрибут toggled (redux-form-material-ui) - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь использовать Toggle из redux-form-material-ui :

import { Toggle } from 'redux-form-material-ui'

Хорошо работает, обновляя переключенное значение в хранилище на его onChange:

<Col xs='3'>
    <h3 className="title-page">Parceiro</h3>
    <Field name="possui-parceiro" component={Toggle} label="Possui parceiro?" />
</Col>

Проблема в том, что я вызываю какой-то API, и мне нужно обновить значение этого переключателя «программно».Теоретически, я могу использовать атрибут toggled, как указано здесь , но это просто не работает:

<Col xs='3'>
    <h3 className="title-page">Parceiro</h3>
    <Field name="possui-parceiro" component={Toggle} toggled={this.state.someBloodyState} label="Possui parceiro?" />
</Col>

Что заставляет меня полагать, что в этом случае избыточная формапросто на пути процесса обновления / манипуляции, вынуждая меня каким-то образом обновить форму в хранилище, чтобы переключать значение, и это выглядит беспорядочно для отправки такого действия.Во всяком случае, как вы поступаете в таких случаях?

1 Ответ

1 голос
/ 15 марта 2019

Я бы сохранил результат API в состоянии избыточности, прочитал его из вашего mapStateToProps и передал его компоненту в свойстве initialValues setting enableReinitialize: true.

Эти 2 свойства позволяют redux-form программно изменить материал "позже" после того, как форма уже визуализирована.

В противном случае, если вы можете извлечь свои данные еще до рендеринга формы, вы можете просто использовать initialValues без enableReinitialize.

Другой способ заключается в использовании функции change , предоставленной в виде избыточной формы

Больше информации в документах

...