El hook useReducer es un hook de React que te permite manejar el estado de un componente de manera escalable. Recibe el estado actual del componente y el código a ejecutar y a partir de eso devuelve un nuevo estado. Es muy util para manejar estados globales dentro de un contexto. Esta es una forma paso a paso de aplicarlo

  1. Debemos declarar el estado inicial. Supongamos que estamos trabajando en la app de una tienda y el estado inicial necesita el carrito vacio
const initialState=[]
  1. Creamos el reducer. Este recibe el estado y una accion
const reducer=(state, action)=>{
}
  1. El reducer siempre tiene que devolver un estado nuevo, por lo que el return sera el estado
const reducer=(state, action)=>{
	return state
}
  1. Ahora debemos decirle al reducer que segun la accion que ocurra, cambiara el estado. Podemos hacerlo con un switch.
const reducer=(state, action)=>{
	switch (action.type){
		case "addToCart"{
			const productInCartIndex=state.findIndex(item=>item.id===product.id)
		}
	}
	return state
}