我試圖通過在我的 redux saga 中調用 put 方法來觸發 redux reducer,但它沒有被觸發,即使我返回應該在我的 reducer 中捕獲的相同操作類型。這是我的傳奇:export function* registrationSaga(action) { try { const response = yield call(registerUser, action.payload); console.log(response) yield put({ type: REGISTER_USER_SUCCESS, response }) } catch(error) { yield put({ type: REGISTER_USER_ERROR, error }); }}這是我的減速器:export const registrationReducer = (state = {}, action) => {let response = action.response;switch(action.type) { case REGISTER_USER_SUCCESS: { console.log("successful registration") return { ...state, registration_success: response.success, registration_message: response.message }; } case REGISTER_USER_ERROR: return { ...state, registration_success: response.success, registration_message: response.message }; default: return state;}}我希望在我的控制臺中看到“成功注冊”并在我的組件中將該響應作為道具獲得,但這并沒有發生。什么應該導致這個問題?這是我的 rootReducer 和商店:const rootReducer = () => combineReducers({ registrationReducer, todoReducer})export default rootReducer;并存儲:const sagaMiddleware = createSagaMiddleware()export const store = createStore( rootReducer, applyMiddleware(sagaMiddleware));sagaMiddleware.run(rootSaga)
Redux-saga put 方法不會觸發減速器
慕森王
2021-11-18 16:14:16