Estoy usando Redux para la administración del estado, me he enfrentado a un problema en la función del reductor aquí está la imagen de mi consola, puede ver que la acción del producto está proporcionando mis datos pero el reductor no está pasando mi función
aquí está mi código de ProductAction:
export const getProductsbyFind = (myvariable) =>async (dispatch)=>{ try { console.log(myvariable) dispatch({type: ALL_PRODUCTS_REQUEST_BY_ID}) const{ data } = await axios.get(`/api/v1/product/${myvariable}`) console.log(data) dispatch({ type: ALL_PRODUCTS_SUCCESS_BY_ID, payload: data }) } catch (error) { dispatch({ type:ALL_PRODUCTS_FAIL, payload: error.response.data.message }) } }aquí está el código de Reducer:
export const productReducersById = (state = { products: [] }, action) => { switch (action.type) { case ALL_PRODUCTS_REQUEST_BY_ID: return { loading: true, products: [] } case ALL_PRODUCTS_SUCCESS_BY_ID: return { loading: false, products: action.payload.products, productsCount: action.payload.productsCount } case UPDATE_QUANTITY_BY_ID: const { index, quantity } = action.payload; const prods = state.products.map((p, i) => { if (i !== index) return p; return { ...p, quantity } }); return { loading: true, products: prods } case ALL_PRODUCTS_FAIL_BY_ID: return { loading: false, error: action.payload } case CLEAR_ERRORS_BY_ID: return { ...state, error: null } default: return state } }aquí está el código de mi página donde quiero obtener mis datos:
const { loading, products, error, productCount } = useSelector(state => state.products); console.log(products) useEffect(() => { dispatch(getProductsbyFind(myvariable)); }, [dispatch])Tienes un error tipográfico en tu reductor:
case ALL_PRODUCTS_SUCCESS_BY_ID: return { loading: false, - products: action.payload.products, + products: action.payload.product, productsCount: action.payload.productsCount } (Además, productsCount no existe en su carga útil, por lo que quedará undefined ).