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

时间:2017-02-21 08:25:17

标签: redux redux-form

我有很多表单,并希望逐步将我的表单从5版本迁移到6版本的redux-form。 我已经想出了如何管理依赖项,但是如何将两个版本的reducer与一个商店密钥form结合起来?

1 个答案:

答案 0 :(得分:3)

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

组合reducer时,包括两个版本但是在不同的键上(我不确定你是如何管理依赖项但是你应该得到jist):

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 reducer覆盖默认的form键:

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

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