2017-09-13 5 views
0

나는 AsyncStorage에서 문자열을 읽는 내 구성 요소의 동작을 getLocalToken으로 호출합니다. 다음은이 함수를 호출하는 방법입니다. 작업은 일반 개체 여야합니다. 비동기 기능을 위해 사용자 정의 미들웨어를 사용하십시오. 반응 원주민

componentWillMount() { 
      this.props.getLocalToken(); 
      console.log("CWM", this.props.auth); 
     } 

다음

이 코드에 대한 나의 행동

export const getLocalToken = async() => { 
    try { 
     const localToken = await AsyncStorage.getItem('@auth:localToken'); 
     const mobileNumber = await AsyncStorage.getItem('@auth:mobileNumber'); 
    } 
    catch (e) { 
     console.log('Failed to read token', e); 
    } 



    return (dispatch) => { 
     console.log("get token"); 
     dispatch({ 
      type: types.GET_LOCALTOKEN_SUCCESS, 
      payload: { localToken: this.localToken, mobileNumber: this.mobileNumber } 
     }); 
    } 
} 

이다 나는 조치 일반 개체를해야 얻을. 비동기 기능을 위해 사용자 정의 미들웨어를 사용하십시오. 오류.

+0

오류 메시지는 매우 자기 설명 적으로 보입니다. 문제는 무엇입니까? – Nit

+0

Javascript 및 React Native를 처음 사용하기 때문에 알아 내지 못했습니다 –

+0

오류 메시지를 바꾸려면 기본 동작이 비동기 작업을 지원하지 않습니다. 비동기 작업을 수행하려는 경우 사용자 정의 미들웨어를 사용해야하며 일반적으로 사용되는 옵션은 [Redux Thunk] (https://github.com/gaearon/redux-thunk)입니다. – Nit

답변

2

Actions은 일반 자바 스크립트 개체입니다. 액션에는 수행 할 액션의 유형을 나타내는 type 속성이 있어야합니다. 형식은 일반적으로 문자열 상수로 정의해야합니다. 자세한 정보는 redux-documentation을 읽으십시오.

비동기 요청 또는 기타 부작용을 원하면 middleware을 사용해야합니다. 가장 인기은 다음과 같습니다

그들 모두는 다른 방법으로 비동기 요청을 처리합니다. Redux-thunk은 초보자이지만 제 생각에는 복잡한 프로젝트와 테스트에 고통이 있습니다.