...
/2.14 One more thing: Redux Dev Tools
2.14 One more thing: Redux Dev Tools
We'll cover the following...
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:
Press + to interact
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;