freeCodeCamp Challenge Guide: Copy an Object with Object.assign

Copy an Object with Object.assign


Problem Explanation

The goal of this challenge is to enforce state immutability when state is an object.


Hints

Hint 1

Use the method Object.assign({}, obj1, obj2) in return. Pass state as obj1.

Hint 2

The obj2 should be the updated {key: value} pair of your state.


Solutions

Solution 1 (Click to Show/Hide)
const defaultState = {
  user: "CamperBot",
  status: "offline",
  friends: "732,982",
  community: "freeCodeCamp"
};

const immutableReducer = (state = defaultState, action) => {
  switch (action.type) {
    case "ONLINE":
      // to enforce state immutability, return a new state object using Object.assign() method
      return Object.assign({}, state, { status: "online" });
    default:
      return state;
  }
};

const wakeUp = () => {
  return {
    type: "ONLINE"
  };
};

const store = Redux.createStore(immutableReducer);
22 Likes