반응형
redux-saga의 getState?
항목 목록이있는 상점이 있습니다. 내 앱이 처음로드 될 때 항목을 기반으로 일부 메모리 내 개체를 만드는 것처럼 항목을 deserialize해야합니다. 항목은 내 redux 저장소에 저장되고 itemsReducer
.
부작용으로 역 직렬화를 처리 하기 위해 redux-saga 를 사용하려고합니다 . 첫 페이지로드시 액션을 전달합니다.
dispatch( deserializeItems() );
내 saga는 간단하게 설정됩니다.
function* deserialize( action ) {
// How to getState here??
yield put({ type: 'DESERISLIZE_COMPLETE' });
}
function* mySaga() {
yield* takeEvery( 'DESERIALIZE', deserialize );
}
내 항목의 메모리 내 버전을 만드는 부작용을 처리하려는 deserialize saga에서 저장소에서 기존 데이터를 읽어야합니다. 여기에서 어떻게해야할지 모르겠거나 그것이 패턴이라면 redux-saga로 시도해야합니다.
선택 효과를 사용할 수 있습니다
import {select, ...} from 'redux-saga/effects'
function* deserialize( action ) {
const state = yield select();
....
yield put({ type: 'DESERIALIZE_COMPLETE' });
}
또한 선택기와 함께 사용할 수 있습니다.
const getItems = state => state.items;
function* deserialize( action ) {
const items = yield select(getItems);
....
yield put({ type: 'DESERIALIZE_COMPLETE' });
}
Saga가 코드 흐름을 처리하지 않는 콜백 함수에서는 Select 효과가 도움이되지 않습니다. 이 경우 통과 dispatch
하고 getState
saga를 루트합니다.
store.runSaga(rootSaga, store.dispatch, store.getState)
그리고 자식 무용담에 매개 변수를 전달
export default function* root(dispatch, getState) { yield all([ fork(loginFlow, dispatch, getState), ]) }
그런 다음 시계 방법에서
export default function* watchSomething(dispatch, getState) ...
참고 URL : https://stackoverflow.com/questions/38405700/getstate-in-redux-saga
반응형
'Development Tip' 카테고리의 다른 글
Pandas를 사용하여 두 열 비교 (0) | 2020.11.29 |
---|---|
homebrew로 node.js 설치 문제 (0) | 2020.11.29 |
Visual Studio가 특정 DLL에 대한 기호를로드하지 못하도록 방지 (0) | 2020.11.29 |
C의 구조 상속 (0) | 2020.11.29 |
System.Collections.Generic.List에 'Select'에 대한 정의가 없습니다. (0) | 2020.11.29 |