38 lines
1.0 KiB
Markdown
38 lines
1.0 KiB
Markdown
|
---
|
||
|
title: Extract State Logic to Redux
|
||
|
---
|
||
|
## Extract State Logic to Redux
|
||
|
|
||
|
This is a stub. <a href='https://github.com/freecodecamp/guides/tree/master/src/pages/certifications/front-end-libraries/react-and-redux/extract-state-logic-to-redux/index.md' target='_blank' rel='nofollow'>Help our community expand it</a>.
|
||
|
|
||
|
<a href='https://github.com/freecodecamp/guides/blob/master/README.md' target='_blank' rel='nofollow'>This quick style guide will help ensure your pull request gets accepted</a>.
|
||
|
|
||
|
<!-- The article goes here, in GitHub-flavored Markdown. Feel free to add YouTube videos, images, and CodePen/JSBin embeds -->
|
||
|
|
||
|
Suggested solution:
|
||
|
|
||
|
```javascript
|
||
|
const ADD = 'ADD';
|
||
|
|
||
|
function addMessage(message) {
|
||
|
return {
|
||
|
type: ADD,
|
||
|
message: message
|
||
|
};
|
||
|
};
|
||
|
|
||
|
function messageReducer (previousState, action) {
|
||
|
return [...previousState, action.message];
|
||
|
}
|
||
|
|
||
|
let store = {
|
||
|
state: [],
|
||
|
getState: () => store.state,
|
||
|
dispatch: (action) => {
|
||
|
if (action.type === ADD) {
|
||
|
store.state = messageReducer(store.state, action);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
```
|