У меня есть приложение и избыточная форма, живущие внутри IntlProvider
компонента, подобного этому:
<IntlProvider>
<Form />
</IntlProvider>
проблема в том, что всякий раз, когда я пытаюсь изменить значение локали, вызывая действие updateIntl
, чтобы изменить приложениеязык, компонент формы приставки перемонтируется снова и сбрасывает все состояния и реквизиты в форме.
Я использую реагировать-intl-redux для вызова updateIntl
следующим образом:
dispatch(updateIntl({ locale: value, messages: translations[value] }))
и это те действия, которые запускаются при изменении значения IntlProvider
locale:
@@intl/UPDATE // here I still have the old state which is the form fields values
@@redux-form/INITIALIZE // here the state starts to reset
@@redux-form/UPDATE_SYNC_ERRORS
@@redux-form/DESTROY
@@redux-form/REGISTER_FIELD
при установке для destroyOnUnmount значения true следующим образом:
reduxForm({
form: 'someForm',
destroyOnUnmount: false,
})
theсостояние формы не сбрасывается, но это не моя проблема, потому что мне нужно для destroyOnUnmount иметь значение true, поскольку у меня подключен маршрутизатор реагирования, и мне нужно инициализировать форму при перемещении между маршрутами.
Я попытался обернутьмоя форма для плагина-редуктора основана на этом решении , но я до сих пор не могу предотвратить вызов действий в форме редукса после вызова @@intl/UPDATE
.