通过更改 React-intl 包装器属性切换语言时,我的 redux-form 被重新初始化

2023-12-11

我正在将我的应用程序包装在IntlProvider from react-intl v2, 像这样:

<IntlProvider locale={this.props.lang} messages={this.props.messages}>

我有我的react-form形成树下。一切都很好。

但是,如果我开始填写表单,并且我决定更改 UI 的语言(通过监听将更新我的lang and messagesprops 通过我的 redux 商店),表单正在重置:-/

我看到了动作redux-form/INITIALIZE当语言改变时被解雇。

即使我通过了也会发生destroyOnUnmount: false to reduxForm().

对于不受控制的表单字段,这种情况不会发生。

任何想法?

我的代码:App.js + 登记表


嗯...你正在改变你的initialValuesprop,因此它正在初始化表单数据。initialValues旨在用于要编辑的来自服务器的规范数据(例如加载的记录),而不是真正用于从组件外部更新单个表单值。

也许你可以使用plugin() API注意语言更改操作(是通过 Redux 更改的吗?)并更新lang你的形式的价值?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过更改 React-intl 包装器属性切换语言时,我的 redux-form 被重新初始化 的相关文章

随机推荐