동일한 작업 유형의 여러 작업 취소를 redux-saga에 통합하는 방법을 파악하려고합니다. 기본적으로 내 구성 요소가 componentWillUnmount()
일 때 시작되었을 수있는 모든 작업을 취소하고 싶습니다.redux-saga : 같은 작업 유형/saga의 여러 작업 취소
I (이 크게 나는 실제로 내 코드에서 무슨에서 단순화,하지만 필수로 내려 깎다하기 위해 노력하고있어) 다음과 같은 조치가있는 경우 :
// Action
export const loadMyData = params => {
let url = /* Create URL based on params */
return {
type: FETCH_DATA,
url,
key: /* a unique key so we can retrieve it in the state later */
}
}
을 그리고 다음 사가 :
// Saga
export function* fetchData(action) {
try {
// 'callApi()' currently uses axios
let response = yield call(callApi, action.url);
yield put({
type: FETCH_SUCCESS,
key: action.key,
payload: response.data
});
} catch(error) {
yield put({
type: FETCH_FAILURE,
error
});
}
}
export function* watchFetchData() {
while (true) {
let action = yield take(FETCH_DATA);
let task = yield fork(fetchApi, action);
}
}
위에서 설명한대로 구성 요소는 loadMyData()
을 여러 번 호출 할 수 있습니다. 또한 loadMyData()
을 호출하는 다른 구성 요소가있을 수 있습니다. 그래서 나는 componentWillUnmount()
상태에있는 구성 요소에서 작업을 취소하는 방법을 찾고 있지만 다른 실행중인 작업은 그대로 두려고합니다.
에서 해당 예제는 취소 작업이 필요한 단일 작업에 대한 것입니다. 그리고 그것을 유스 케이스로 확장하는 방법을 알 수 없습니다. 내 마음에 오는 어떤