0
redux-saga와 함께 React-router-v4를 사용하고 있습니다. 내 문제는 한 번 사용자가 로그인 한 번입니다. 응답 페이지에서 예를 들어 here과 {withRouter}
으로 리디렉션하고 싶습니다. 시도했지만 작동하지 않았습니다. 내게 redux-saga로 어떻게해야하는지 알려주세요. 대답 here이 유일한 방법입니까?사용자 로그인 후 집으로 이동하는 방법 redux-saga와 함께 react-router-v4
아래 나는 간단한 REDUX 미들웨어를 사용하여이 문제를 해결 얻을 내 REDUX 사가 코드
import { takeLatest } from 'redux-saga';
import {LOG_IN,LOG_INS,LOG_IN_ERROR} from '../constants/actionTypes';
import { call, put } from 'redux-saga/effects';
import {withRouter} from 'react-router';
import {login} from '../services/loginApi'
import { fetchScenario } from '../services/scenarioApi';
export default function* watchLogin() {
yield takeLatest(LOG_IN, loginSaga);
}
function* loginSaga(data) {
try {
console.log("obj in sagas",data)
const logInData = yield call(login,data.obj);
yield [put({ type:LOG_INS , logInData })];
this.props.history.push('/home')
}catch(error){
yield put({type: LOG_IN_ERROR, error: error.message})
return false
}
}
우리는 react-router-dom에 아무 것도 가지고 있지 않습니까? 기본적으로 가능한 경우에만 추가 종속성을 피하고 싶습니다 .2 사례를 추가해야합니다. – LowCool
@LowCool, 내 생각이지만, 모든 프로젝트에서 의미있는 크기라면 사용자를 리디렉션하는 것 이외의 부작용을 처리하기위한 간단한 시스템이 필요합니다. 필자의 경우에는 모든 요구 사항을 처리 할 수있는 미들웨어가 있으며 Redux Saga는 과잉입니다. –