I am a complete newbie in using Redux/Redux Toolkit and am working on writing a small application. My current store and reducer setup looks something like below:
const store = configureStore({
reducer: rootReducer
})
...
...
const rootReducer = combineReducers({
settings: SettingsReducer,
user: UserReducer,
})
I have written SettingsReducer
and UserReducer
something like below:
const SettingsReducer = (state: SettingsState = initialSettingsState, action: SettingsReducerActionType) => {
switch (action.type) {
...
...
default: return state
}
}
const UserReducer = (state: UserState = initialUserState, action: UserReducerActionType) => {
switch (action.type) {
...
...
default: return state
}
}
I would like to know if my UserReducer
and SettingsReducer
will use Immer
for updating state? Looking at the Redux documentation it mentions using functions createSlice
and createReducer
will allow Immer usage so I wanted to get some confirmation.
Redux Toolkit's createReducer and createSlice automatically use Immer internally to let you write simpler immutable update logic using "mutating" syntax. This helps simplify most reducer implementations.
By not using createReducer
and createSlice
, you're not using Immer.