reducerbeginnerfunction reducer(state = 0, action) {
switch (action.type) {
case 'ADD': return state + action.payload
case 'SUBTRACT': return state - action.payload
default: return state
}
}
reducer(10, { type: 'ADD', payload: 5 }) // β 15
reducer(10, { type: 'SUBTRACT', payload: 3 }) // β 7Using action.payload lets you pass dynamic values without creating a separate action type for every possible amount.
Actions can carry extra data in a payload property. The reducer reads action.payload to perform dynamic updates:
{ type: 'ADD', payload: 5 }
This lets you dispatch one action type with different values rather than hard-coding the delta.
Challenge: Implement reducer(state = 0, action) that handles:
'ADD' β returns state + action.payload'SUBTRACT' β returns state - action.payload