如何在一个商店中合并两个版本的 redux-form?

How can I combine two versions of redux-form in one store?

我有很多表单,想逐步将我的表单从 5 版本的 redux-form 迁移到 6 版本。 我已经弄清楚如何管理依赖关系,但如何将两个版本的 reducer 与一个存储键结合起来 form?

在将表单连接到 redux 并将其指向状态树中的相应键时,您应该能够使用 getFormState 配置 属性。

合并 reducer 时,包括两个版本,但键不同(我不确定你是如何管理依赖关系的,但你应该明白了):

import { createStore, combineReducers } from 'redux'
import { reducer as formReducerV5 } from 'redux-form-v5'
import { reducer as formReducer } from 'redux-form'

const reducers = {
  // ... your other reducers here
  form: formReducer,
  formV5: formReducerV5
}
const reducer = combineReducers(reducers)
const store = createStore(reducer)

然后使用 v5 减速器覆盖默认的 form 键:

const yourFormContainer = reduxForm({
  form: 'myForm'
  getFormState: state => state.formV5
})(YourForm);

已经迁移到 v6 的表单只能使用默认的 getFormState 行为,最终您将能够删除旧的 reducer。