Un reductor, conocido también como “reducer” en inglés, es una función en Redux que se encarga de actualizar el estado de la aplicación en respuesta a las acciones que se despachan. Recibe el estado actual y una acción como parámetros, y devuelve un nuevo estado.
Para cada acción que se despache, todos los reductores son llamados. Eso significa que dentro de un reductor, debes decidir cómo quieres manejar ciertas acciones y si deseas hacer algún cambio en respuesta a esas acciones.
Un reductor debe ser una función pura, lo que significa que no debe tener efectos secundarios y debe retornar el mismo resultado si se le da la misma entrada.
Su nombre viene de la función de los arrays en JavaScript `.reduce()`, que es utilizada para realizar una transformación de un array a otro valor.
Un ejemplo de la estructura de un reductor puede ser:
```javascript
function reductor(state = initialState, action) {
switch (action.type) {
case ‘ACTION_TYPE’:
// Aquí es donde se realiza la manipulación del estado
// y se devuelve un nuevo estado.
return { …state, newProperty: action.payload }
default:
return state
}
}
```