2017-02-21 12 views
2

У меня есть много форм и вы хотите постепенно, один за другим, перенести мои формы с 5 до 6 версий редукционной формы. Я выяснил, как управлять зависимостями, но как я могу объединить две версии редукторов с одним ключом магазина form?Как я могу объединить две версии редукционной формы в одном магазине?

ответ

3

Вы должны иметь возможность использовать свойство конфигурации getFormState при подключении формы к сокращению и указывать ее на соответствующий ключ в дереве состояний.

При комбинировании редуктора, включает в себя обе версию, но в разных тональностях (я не знаю, как вы управляете зависимостью, но вы должны получить тэки):

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 и в конечном итоге вы сможете удалить старый редуктор.

+1

Эй, это никогда не было так, как я считал, кто-то делает, но это правильный ответ. –