2016-10-09 9 views
0

私はReact NativeReduxをチャットアンドロイドアプリに使用しています。Reactネイティブインターネットのフェッチクラッシュはありません

this.props.actions.getMessages(someID) 

これは、チャット・コンポーネントのライフサイクルcomponentDidMount()に呼び出されます:私のアプリケーションで

は、私はこのようなAPIをフェッチ作用を有します。

また、ルートコンテナの私のアプリでは、インターネット接続があるかどうかをチェックします。そうでない場合は、すべての上にモーダルを表示します。

私の問題は次のようなものです。チャットコンポーネントがマウントされ、インターネット接続が失われてアプリがクラッシュした場合です。

私は何か間違っていますか?インターネットに接続していないとフェッチを停止できますか?

答えて

0

getMessagesを呼び出したときに接続が切断されるたびに接続をチェックしようとします。接続はオンとオフになったとき、あなたがチェックすることができ、このスニペットで :

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

関連する問題