update reducer

Update Reducer

As a developer, updating a reducer is a common task while working with React and Redux. A reducer is a pure function that takes the current state and an action and returns a new state. The new state depends on the action type and the current state. Updating a reducer means modifying the logic of the function to handle new actions or changing the existing action behavior.

Steps to Update Reducer

  • Step 1: Identify the changes required
  • Step 2: Modify the reducer function
  • Step 3: Test the updated reducer

Let's take an example of a simple counter application to understand how to update a reducer. The initial state of the application is:


const initialState = {
    count: 0
};

The reducer function for this application looks like:


const counterReducer = (state = initialState, action) => {
    switch (action.type) {
        case "INCREMENT":
            return {
                count: state.count + 1
            };
        case "DECREMENT":
            return {
                count: state.count - 1
            };
        default:
            return state;
    }
};

Now, suppose we want to add a new action type "RESET", which sets the count back to 0. To update the reducer, we need to follow the steps mentioned above.

Step 1: Identify the changes required

We need to add a new case statement in the switch block to handle the RESET action type.

Step 2: Modify the reducer function

The updated reducer function looks like:


const counterReducer = (state = initialState, action) => {
    switch (action.type) {
        case "INCREMENT":
            return {
                count: state.count + 1
            };
        case "DECREMENT":
            return {
                count: state.count - 1
            };
        case "RESET":
            return {
                count: 0
            };
        default:
            return state;
    }
};

Step 3: Test the updated reducer

We can now dispatch the RESET action and test if the reducer is working as expected.


store.dispatch({ type: "RESET" });
console.log(store.getState()); // Output: { count: 0 }

Here, store is the Redux store that holds the state tree, and getState() method returns the current state of the store.

In this example, we have updated the reducer by adding a new action type. Similarly, we can modify the existing action behavior or remove an action type if not required.

Subscribe to The Poor Coder | Algorithm Solutions

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]
Subscribe