Redux saga запускается в бесконечном цикле, даже после повторного запуска PROJECTS_SUCCEDED он возвращается к методу fetchData.пожалуйста найдите код саги ниже
import axios from 'axios';
import { put, all, take, call, takeLatest , takeEvery} from 'redux-saga/effects';
import actions from './actions';
const getRequest = () =>{
const data = fetch('https://jsonplaceholder.typicode.com/todos/1')
.then( res => res.json())
.catch(err => {throw err});
return data;
}
function* fetchData(action) {
console.log('fetchdata');
try{
const data = yield call(getRequest);
console.log(data)
yield put({type:actions.PROJECTS_SUCCEDED, payload:data});
}
catch (err){
yield put({type:actions.PROJECTS_FAILED,err:err});
}
}
function* dashboardSaga(){
console.log('saga ran once')
yield takeLatest(actions.projectsRequested, fetchData);
}
export default dashboardSaga;
, и действие вызывается в componentDidMount
componentDidMount() {
this.props.projectsRequested();
}
, а корневая сага -
import { all } from 'redux-saga/effects';
import homeSaga from './dashboard/sagas';
export default function* rootSaga(getState) {
yield all([
homeSaga(),
]);
}