그냥 redux-sagas 주위를 돌아보고 사가에서 두 명의 관찰자를 설정하고 이후에 취소하는 문제를 해결하려고합니다.redux-sagas에서 여러 명의 관찰자를 설정하고 취소하는 방법
일부 배경 : JSON 스키마를로드하고 저장하기 위해 saga에서 백엔드 API 호출을 처리하는 JSON 편집기 구성 요소가 있습니다. 이 프로젝트는 React Boilerplate을 기반으로하므로 응용 프로그램의 구조는 거의 동일합니다.
가 여기에 관련 코드입니다 :
export function* loadSchemaWatcher() {
const action = yield take(LOAD_SCHEMA)
yield call(loadSchema, action)
}
export function* saveSchemaWatcher() {
while (true) {
const action = yield take(SAVE_SCHEMA)
yield call(saveSchema, action)
}
}
export function* editorData() {
const watcher = yield [
fork(loadSchemaWatcher),
fork(saveSchemaWatcher)
]
yield take(LOCATION_CHANGE)
yield watcher.forEach(task => cancel(task))
}
export default [
editorData,
]
내가 가정이 yield watcher.forEach(task => cancel(task))
하는 것과 Tasks의 배열을 통해 루프하지만이 취소되지 않습니다.
로 단순히'수율 테이크 (LOCATION_CHANGE)를 실행하지 않는 모든 이유가 대체되었습니다 '다음 직후'editorData()'에서 모두 포크? –