2017-09-08 8 views
-1

私のリアクションアプリケーションにはローディングスピナーを表示するだけのLoadingコンポーネントがあります。ローダーが6秒以上表示されている場合は、ページを更新してください

私はデータをフェッチしているときはいつでもこれを使用します。ローディングコンポーネントが6秒以上表示された場合、ページをリロードできるようにするにはどうすればよいですか?どのように私はこれをするでしょう:window.location.reload();

import React from 'react'; 

const Loading =() => (
    <div className="ui active dimmer"> 
     <div className="ui loader" /> 
    </div> 
); 

export default Loading; 

私はこのようにそれを使用します。

if(global.isFecthing) { 
    return <Loading />; 
} 
+0

'isFecthing'変数を定義する関数は、タイムアウトを設定してからページをリフレッシュするべきではないでしょうか? – Joe

+0

いいえ、その関数はデータをフェッチするため、実際のデータフェッチではタイムアウトを設定したくありません。 – user3574492

+1

これはまさにあなたがやりたいことだと思われます。ページをリフレッシュするとデータフェッチ接続が切断されます。代わりに何をしたいですか? – Joe

答えて

1

置くのに十分であるべきであるあなたの6秒で条件付きのリフレッシュを設定するには、初期化関数をフェッチ:

setTimeout(() => (if (global.isFetching) window.location.reload()), 6000)

タイムアウトを設定すると、ブロックされないため、実際のデータフェッチはブロックされません。タイムアウトは独自のスレッドで実行されます。

関連する問題