0

감속기에서 액션을 호출하거나 다른 장면으로 리디렉션하는 것에 대한 질문이 있습니다. 나는 사용자가 성공적으로 로그인 한 후 현장으로 리디렉션 할 나는 'REDUX-API-미들웨어'모듈을 사용하여 내 action.js 있습니다.React 네이티브 라우터 Flux (react-native-router-flux) - 감속기에서 호출 동작

export const LOGIN_REQUEST = 'LOGIN_REQUEST'; 
export const LOGIN_SUCCESSFUL = 'LOGIN_SUCCESSFUL'; 
export const LOGIN_FAILED = 'LOGIN_FAILED'; 

export function login(data) { 
    return { 
    [CALL_API]: { 
     endpoint: API_ROOT + 'login', 
     method: 'POST', 
     types: [LOGIN_REQUEST, LOGIN_SUCCESSFUL, LOGIN_FAILED], 
     body: JSON.stringify(data) 
    } 
    } 
} 

reducer.js을 action.js을

function login(state = initalstate, action){ 

    switch (action.type) { 

    case LOGIN_REQUEST: 

     return { 
      ...state, 
      isFetching: true 
     }; 

    case LOGIN_FAILED: 

     return { 
      ...state, 
      error: action.error, 
      isFetching: false 
     }; 

    case LOGIN_SUCCESSFUL: 

     return { 
      ...state, 
      error: null, 
      isFetching: false 
     }; 

     break; 

    default: 
     return state; 

    } 

} 

지금 내가 LOGIN_SUCCESSFUL를 얻을 수 있다면 다음 화면으로 리디렉션 ActionsMY_SCENE_KEY 같은 조치를 호출합니다. 감속기에서 Actions를 호출하면 오류가 발생하며 이는 잘못된 접근입니다.

답변

0

감속기를 작동시키지 마십시오. 당신은 2 otpions이 : 사용자가 성공적으로 로그인하면

1), 당신은 당신의 상태에서 그 반영 할 수

case LOGIN_SUCCESSFUL: 

    return { 
     ...state, 
     error: null, 
     isFetching: false, 
     loggedIn: true, 
    }; 

당신의 국가에 연결된 컨테이너에이 방법을 사용하면이 상태를 확인할 수 있습니다. loggedIn 값을 설정하고 전환 작업을 전달하여 전환을 트리거합니다.

2) 성공적인 응답에서 로그인 API 응답을 처리 할 때 전환 장면 작업을 보내면 다음 화면으로 리디렉션됩니다 (성공적인 로그인 작업 발송과 결합 할 수 있음).

관련 문제