yield put 会触发takeEvery中的方法,这样会造成死循环
来源:6-9 Redux-saga中间件入门(2)
慕盖茨0058887
2023-05-27
import {takeEvery, put} from 'redux-saga/effects';
import {INIT_LIST_DATA} from './actionTypes'
import "./actionTypes";
import axios from "axios";
function *getList() {
console.log('getInitList')
const res = yield axios.get('http://47.104.103.63/project/react/todolist/todolist.json');
const data = res.data
yield put({
type: INIT_LIST_DATA,
value: data
})
}
// generator 函数
function *mySaga() {
console.log('mySaga')
yield takeEvery(INIT_LIST_DATA, getList)
}
export default mySaga;
1回答
-
Dell
2023-06-08
你看哈,当来了一个 INIT_LIST_DATA,你就掉用 getList,get List 里面你又继续发送一个 INIT_LIST_DATA,当来了一个 INIT_LIST_DATA,你就掉用 getList,get List 里面你又继续发送一个 INIT_LIST_DATA,当来了一个 INIT_LIST_DATA,你就掉用 getList,get List 里面你又继续发送一个 INIT_LIST_DATA,。。。。。 死循环就是你这段逻辑造成的。
012023-06-08
相似问题