Вы когда-нибудь слышали или пытаетесь использовать redux-saga для асинхронных вещей промежуточного программного обеспечения, таких как выборка данных, и нечистых вещей, таких как доступ к кэшу браузера, которым легче управлять, более эффективно выполнять, легко тестировать и лучше обрабатывать сбои.
для более полной документации вы можете увидеть в здесь
я приведу простой пример использования сагы Redx в качестве побочного эффекта
import api from '../api/apidetailproduct'; //if using api import it
import {
takeLatest, //Spawns a saga on each action dispatched to the Store that matches pattern
select, //instructs the middleware to invoke the provided selector on the current Store's state
call, //for calling api
put //instructs the middleware to dispatch an action to the Store.
} from 'redux-saga/effects';
import {
REQUEST_PRODUCT,
} from '../actions/constants';
import {
responseProduct,
} from '../actions/product';
export function* detailEffect(){
const {loginreducer} = yield select() //first select your reducer where you store
try {
const {data} = yield call(api, loginreducer.token )//calling the api and then send the variable
yield put(responseProduct(data))//put the data
} catch (error) {
console.log("error", error);
}
}
export const productsagas = [takeLatest(REQUEST_PRODUCT, detailEffect)]