diff --git a/guide/english/certifications/front-end-libraries/react-and-redux/extract-state-logic-to-redux/index.md b/guide/english/certifications/front-end-libraries/react-and-redux/extract-state-logic-to-redux/index.md index 1789afe4b8..67001d8939 100644 --- a/guide/english/certifications/front-end-libraries/react-and-redux/extract-state-logic-to-redux/index.md +++ b/guide/english/certifications/front-end-libraries/react-and-redux/extract-state-logic-to-redux/index.md @@ -3,35 +3,34 @@ title: Extract State Logic to Redux --- ## Extract State Logic to Redux -This is a stub. Help our community expand it. - -This quick style guide will help ensure your pull request gets accepted. - - - -Suggested solution: +### Solution ```javascript +// define ADD, addMessage(), messageReducer(), and store here: const ADD = 'ADD'; - -function addMessage(message) { - return { +const addMessage = (message) => { + return ({ type: ADD, - message: message - }; -}; - -function messageReducer (previousState, action) { - return [...previousState, action.message]; + message + }) } -let store = { - state: [], - getState: () => store.state, - dispatch: (action) => { - if (action.type === ADD) { - store.state = messageReducer(store.state, action); - } +// Use ES6 default paramter to give the 'previousState' parameter an initial value. +const messageReducer = (previousState = [], action) => { + + // Use switch statement to lay out the reducer logic in response to different action type + switch (action.type) { + case ADD: + + // Use ES6 spread operator to return a new array where the new message is added to previousState + return [...previousState, action.message] + break; + + default: + // A default case to fall back on in case if the update to Redux store is not for this specific state. + return previousState; } -}; +} + +const store = Redux.createStore(messageReducer); ```