4
以前也有類似的問題,但答案對我沒有任何幫助。REDX傳奇選擇器,我如何從傳奇進入狀態?
How to get something from the state/store inside a redux-saga function?
我認爲,我有不同的設置,因爲我似乎無法能夠從我的傳奇訪問狀態。
我試着這樣做:
const getList = store => store;
const getList = state=> state;
這些都返回undefined
。
我的店看起來像這樣...
export default function createStoreWithMiddleware() {
const sagaMiddleware = createSagaMiddleware();
const loggerMiddleware = createLogger();
const middleware = [sagaMiddleware, loggerMiddleware];
const persistedState = localStorage.getItem('reduxState') ? JSON.parse(localStorage.getItem('reduxState')) : {};
const store = createStore(reducer, persistedState, compose(
applyMiddleware(...middleware)
));
store.subscribe(() => {
localStorage.setItem('reduxState', JSON.stringify(store.getState()));
});
sagaMiddleware.run(rootSaga);
return store;
}
我要訪問這個傳奇我的名單:
function* selectTender(action) {
try {
const response = yield Api.getTenderById(action.payload);
yield put({type: 'SELECT_TENDER_SUCCEEDED', currentTender: response});
const list = yield select(getList);
yield put({type: 'FETCH_CHAPTERS', chaptersList: list, tenderId: response.id});
} catch (err) {
yield put({type: 'SELECT_TENDER_FAILED', message: err.message});
}
}
export function* watchSelectTender(){
yield takeEvery('SELECT_TENDER', selectTender);
}
但就像我說的,既state
和store
是不確定的。
那麼,如何在傳奇中訪問我的商店(或州)?
我試過了,但就像我說的,狀態返回undefined :( – Winter
其實它工作!我調試它錯了。當我使用整個'yield select(selectors.username);'它工作 - 像魔術:) – Winter