2.14 One more thing: Redux Dev Tools
The Redux Dev Tool
makes it much easier to view Redux state tracking and take advantage of cool features like time travel debugging.
We’ll install it on Chrome here.
-
Chrome extension install
-
Add for Redux store
Open the App.js file and modify the createStore part as follows:
const store = createStore(appReducer);-->const store = createStore(appReducer,window.__REDUX_DEVTOOLS_EXTENSION__ &&window.__REDUX_DEVTOOLS_EXTENSION__());
- Check on browser
import { getModelData } from '../services/BatteryService'; const initialState = { carstats: [ { miles: 246, model: "60" }, { miles: 250, model: "60D" }, { miles: 297, model: "75" }, { miles: 306, model: "75D" }, { miles: 336, model: "90D" }, { miles: 376, model: "P100D" } ], config: { speed: 55, temperature: 20, climate: true, wheels: 19 } } function updateStats(state, newState) { return { ...state, config: newState.config, carstats: calculateStats(newState) } } function calculateStats(state) { const models = ['60', '60D', '75', '75D', '90D', 'P100D']; const dataModels = getModelData(); return models.map(model => { const { speed, temperature, climate, wheels } = state.config; const miles = dataModels[model][wheels][climate ? 'on' : 'off'].speed[speed][temperature]; return { model, miles }; }); } function appReducer(state = initialState, action) { switch (action.type) { case 'CHANGE_CLIMATE': { const newState = { ...state, config: { climate: !state.config.climate, speed: state.config.speed, temperature: state.config.temperature, wheels: state.config.wheels } }; return updateStats(state, newState); } case 'SPEED_UP': { const newState = { ...state, config: { climate:state.config.climate, speed:action.value + action.step, temperature:state.config.temperature, wheels:state.config.wheels } }; return updateStats(state, newState); } case 'SPEED_DOWN': { const newState = { ...state, config: { climate:state.config.climate, speed:action.value - action.step, temperature:state.config.temperature, wheels:state.config.wheels } }; return updateStats(state, newState); } case 'TEMPERATURE_UP': { const newState = { ...state, config: { climate:state.config.climate, speed:state.config.speed, temperature:action.value + action.step, wheels:state.config.wheels } }; return updateStats(state, newState); } case 'TEMPERATURE_DOWN': { const newState = { ...state, config: { climate:state.config.climate, speed:state.config.speed, temperature:action.value - action.step, wheels:state.config.wheels } }; return updateStats(state, newState); } case 'CHANGE_WHEEL': { const newState = { ...state, config: { climate:state.config.climate, speed:state.config.speed, temperature:state.config.temperature, wheels:action.value } }; return updateStats(state, newState); } default: return state } } export default appReducer;