Estoy tratando de almacenar datos en mi tienda redux usando un reductor cuando obtenemos datos de la API B/E e intento almacenar datos en el reductor (tienda). Pero no funciona. Mi código es correcto para mí. Pero de alguna manera no está funcionando.
Mi tienda:-
import createSagaMiddleware from 'redux-saga'; import { configureStore } from '@reduxjs/toolkit'; import rootReducer from './rootReducer'; import rootSaga from './rootsaga'; // saga middleware const sagaMiddleware = createSagaMiddleware(); // redux store const store = configureStore({ reducer: rootReducer, middleware: [sagaMiddleware], }); // run saga middleware sagaMiddleware.run(rootSaga); export default store;Mi saga raíz: -
import { all, takeEvery } from '@redux-saga/core/effects'; import * as categoryActionTypes from '../redux/types/categoryActionTypes'; import * as productActionTypes from '../redux/types/productActionTypes'; import { getAllStudents } from './sagas/categorySaga'; import { getAllProductWatcher } from './sagas/productSaga'; export default function* root() { yield all([ takeEvery(categoryActionTypes.GET_ALL_CATEGORY, getAllStudents), takeEvery(productActionTypes.GET_ALL_PRODUCT_ACTION, getAllProductWatcher), ]); }Mi reductor: - (console.log () no funciona) Eso significa que no almacena datos en el reductor
import * as actionTypes from '../types/productActionTypes'; const initialState = { product: [], isLoading: true, error: true, }; // reducer export default function productReducer(state = initialState, action) { switch (action.types) { case actionTypes.GET_ALL_PRODUCT_SUCCESS: console.log(action.data); return { ...state, product: action.data, isLoading: false, error: false, }; default: return state; } }Este es mi método saga y así es como almaceno datos en mi reductor:-
import { put } from '@redux-saga/core/effects'; import { GET_ALL_PRODUCT_SUCCESS } from '../types/productActionTypes'; import { createRequest } from '@utils/create-request'; export function* getAllProductWatcher(upload) { try { const Axios = yield createRequest(upload); const res = yield Axios.get('http://localhost:8080/product'); if (res) { **//Tying to store API data to my reducer** yield put({ type: GET_ALL_PRODUCT_SUCCESS, data: res.data, }); } } catch (e) { console.log(e); } }Realmente necesito tu ayuda... Gracias.