2017-10-07 13 views
0

反応ネイティブのアプリを作成していますが、ユーザーがアプリケーションにサインインしているときに表示されるスピナーがあります。自分のスピナーにタイマーを追加したいので、ユーザーが登録しようとしたときに、ネットワークのために登録する時間がかかる場合は、スピナーを停止する必要があります。それはネットワークのようなタイムアウトのようなものです。反応ネイティブのスピナーにタイマーを追加するには

+0

ようこそStackOverflow。 [お問い合わせ方法](https://stackoverflow.com/help/how-to-ask)を読んで、お手数ですが、お手数ですがお手数ですが、 – Antimony

答えて

0

タイマーをオンにするスピナーではなく、ネットワーク要求です。 1つのジョブだけを持つコンポーネントを作成し、スピナーを表示します。コンポーネントに、スピナーを表示するかどうかを知らせるプロパティを渡します。ネットワーク要求がタイムアウトすると、コンポーネントのプロパティを変更してスピナーを無効にします。

実際の質問は、フェッチに応答タイムアウトを設定する方法です。ここでは大きな議論がありますhttps://github.com/facebook/react-native/issues/2556

スピナーを消したい場合は、スピナーを制御するコンポーネントでスピンナーをオフにするようにコンポーネントの状態を変更するsetTimeoutを実行します。

0

あなたはスピナーを開始し、要求を送信

要求が発行されると、あなたは

issuedRequest = true; 
を設定することができます

var issuedRequest = false; 

のように、issuedRequestという変数を作成することができます。あなたは、その後、あなたの要求にタイムアウトコールバックを設定することができれば、また

setTimeout(function() { 
    if (issuedRequest) { 
     //Stop spinner 
    } 
}, 2000); 

:リクエストコールバックでは、あなたは、要求を送信した後、あなたがこのような何かを行うことができます

issuedRequest = false; 

を設定することができますそれを行うことができます。

関連する問題