2016-10-09 4 views
0

React NativeRedux을 채팅 인트로 앱에 사용하고 있습니다.React 네이티브 인터넷에서 가져 오기를 수행하지 못했습니다.

this.props.actions.getMessages(someID) 

이가 채팅 구성 요소 라이프 사이클 componentDidMount()에서 호출됩니다 내 응용 프로그램에서

나는 다음과 같은 API를 가져 오는 작업을해야합니다.

또한 루트 컨테이너에있는 내 앱에서 인터넷 연결이 있는지 확인합니다. 그렇지 않은 경우 모든 항목 위에 모달을 표시합니다.

내 문제는 다음과 같습니다. 채팅 구성 요소가 탑재되어 인터넷 연결이 끊어지면 앱이 다운됩니다.

내가 잘못하고있는 것이 있습니까? 인터넷에 연결되어 있지 않으면 가져 오기를 중지 할 수 있습니까?

답변

0

getMessages를 호출 할 때마다 연결을 확인하십시오. 연결이 ON과 OFF가 될 때 확인할 수있는이 조각으로 :

componentDidMount() { 
    const dispatchConnected = isConnected => this.props.dispatch(setIsConnected(isConnected)); 

    NetInfo.isConnected.fetch().then().done(() => { 
    NetInfo.isConnected.addEventListener('change', dispatchConnected); 
    }); 
} 
+0

감사합니다 @ 마크, 나는이 일을하고 있습니다 만, 예를 들면 가끔 페이지를 채팅에 가서 인출이 성공적인 전에 내가 인터넷 연결을 해제 , 대신 오프라인 페이지의 충돌을 표시합니다. – Anderson

+0

연결 확인 값을 상태로 저장하고 필요한 페이지로 전달하지 않으시겠습니까? 그런 다음 if/else로 렌더링하면 원하는 페이지가 표시됩니까? – Mark

+0

저장 중이며 인증 감속기에 isConnected가 있지만 내 문제는 사용자가 응용 프로그램이 충돌하는 데이터를 가져 오는 중 연결이 끊어지는 것입니다. 더 간단한 단어 사용자가 연결 -> 사용자 요청 -> 가져 오기가 완료되지 않음 -> 사용자 연결이 끊어짐 -> 크래시 – Anderson

관련 문제