redux-immutable
redux-immutable
is used to create an equivalent function of Redux combineReducers
that works with Immutable.js state.
When Redux createStore
reducer
is created using redux-immutable
then initialState
must be an instance of Immutable.Iterable
.
Problem
When createStore
is invoked with initialState
that is an instance of Immutable.Iterable
further invocation of reducer will produce an error:
The initialState argument passed to createStore has unexpected type of "Object". Expected argument to be an object with the following keys: "data"
This is because Redux combineReducers
treats state
object as a plain JavaScript object.
combineReducers
created using redux-immutable
uses Immutable.js API to iterate the state.
Usage
Create a store with initialState
set to an instance of Immutable.Iterable
:
import {
combineReducers
} from 'redux-immutable';
import {
createStore
} from 'redux';
let initialState,
rootReducer,
store;
initialState = Immutable.Map();
rootReducer = combineReducers({});
store = createStore(rootReducer, initialState);