Files

42 lines
1.0 KiB
Markdown
Raw Normal View History

2018-10-12 15:37:13 -04:00
---
title: Copy an Object with Object.assign
---
## Copy an Object with Object.assign
The goal of this challenge is to enforce state immutability when state is an object.
2018-10-12 15:37:13 -04:00
### Hint 1
Use the method ```Object.assign({}, obj1, obj2)``` in return. Pass ```state``` as obj1.
2018-10-12 15:37:13 -04:00
### Hint 2
The obj2 should be the updated ```{key: value}``` pair of your state.
### Solution
```
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);
```
2018-10-12 15:37:13 -04:00
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->