React NativeのScrollViewプルダウンリフレッシュ効果

React NativeのScrollViewプルダウンリフレッシュ効果

この記事では、React Native ScrollViewのプルダウンリフレッシュ効果の具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

ScrollView の refreshControl プロパティはプルダウンの更新に使用され、垂直ビューでのみ使用できます。つまり、horizo​​ntal は true にできません。

1. カスタムCKRefresh.jsリフレッシュコンポーネントを作成する

'react' から React,{Component} をインポートします。
輸入 {
    ビュー、
    文章、
    スタイルシート、
    スクロールビュー、
    リフレッシュコントロール、
    寸法
} から 'react-native';

const screenW=Dimensions.get('window').width;

デフォルトクラスCKRefreshはComponentを拡張します{
    コンストラクタ(){
        素晴らしい();
        this.state={
            rowDataArr:Array.from(新しいArray(30)).map((値,インデックス)=>({
                タイトル:「データの初期化」+インデックス
            }))、
            //読み込みを表示するかどうか
            リフレッシュ中:false、
            読み込まれました:0
        }
    }

    与える(){
        const rowsArr=this.state.rowDataArr.map((row,index)=>(<行データ={row} キー={index}/>))
        戻る(
            <スクロールビュー
                リフレッシュコントロール={
                    <リフレッシュコントロール
                        リフレッシュ中 =​​ {this.state.isRefreshing}
                        onRefresh={()=>this._onRefresh()}
                        colors={['赤','緑','青']}
                        title="読み込み中..."
                    />
                }
            >
                {行数}
            </スクロールビュー>
        )
    }

    _onRefresh(){
        //1. インジケーターを表示する this.setState({
            リフレッシュ中:true
        });
        //2. データの読み込みをシミュレートする setTimeout(()=>{
            newDataArr=Array.from(new Array(5)).map((value,index)=>({
                title:「私はプルダウンされたデータです」+(this.state.loaded+index)
            })).concat(this.state.rowDataArr);
            //ステートマシンを更新 this.setState({
                行データ配列:新しいデータ配列、
                リフレッシュ中:false、
                ロード済み: this.state.loaded+5
            });
        },2000);
    }
}

クラス Row は Component を拡張します {
    静的デフォルトプロパティ = {
        データ:{}
    };
    与える(){
        戻る(
            <表示スタイル={{
                幅:画面W、
                高さ:40,
                ボーダー下幅:1,
                borderBottomColor:'赤',
                コンテンツを中央揃えにする:'center'
            }}>
                <テキスト>{this.props.data.title}</テキスト>
            </表示>
        )
    }
}

const スタイル = StyleSheet.create({

})

2. App.js での参照

/**
 * サンプルReact Nativeアプリ
 * https://github.com/facebook/react-native
 *
 * @フォーマット
 * @flow 厳密なローカル
 */

'react' から React をインポートします。
輸入 {
  セーフエリアビュー、
  スタイルシート、
  スクロールビュー、
  ビュー、
  文章、
  ステータスバー、
} から 'react-native';

輸入 {
  ヘッダ、
  詳細情報リンク、
  色、
  デバッグ手順、
  再ロード手順、
} 'react-native/Libraries/NewAppScreen' から;

'./components/CKRefresh' から CKRefresh をインポートします。
const アプリ: () => React$Node = () => {

  戻る (
    <>
      <ステータスバー barStyle="dark-content" />
      <セーフエリアビュー スタイル = {styles.mainViewStyle}>
      <CKリフレッシュ/>
      </セーフエリアビュー>
    </>
  );
};


const スタイル = StyleSheet.create({
  メインビュースタイル:{
      フレックス:1,
      背景色:'#fff',
  }
});



デフォルトのアプリをエクスポートします。

3. 結果は図の通りです

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • FlatList プルダウン リフレッシュ プルアップ ロードに基づく React Native コード例
  • React Native ListView に、上部のプルダウン更新と下部のクリック更新の例が追加されました
  • React Native カスタム プルダウン リフレッシュ プルアップ ロード済みリストの例
  • React Native での RefreshContorl プルダウン リフレッシュの使用
  • React ネイティブの ListView をプルダウンして更新し、プルアップして実装コードを読み込む
  • Reactはネイティブのプルダウンリフレッシュを実装

<<:  MySQL インデックスのクイックガイド

>>:  Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル)

推薦する

mysql indexof関数の使用手順

以下のように表示されます。 LOCATE(部分文字列、文字列)文字列 str 内の部分文字列 sub...

JavaScriptにおけるこのポインティング問題の詳細な説明

序文JS の this ポインターは、初心者にとって常に頭痛の種でした。今日は、これが地面に落ちたと...

HTML+CSSは、要素の位置までスクロールして読み込みアニメーション効果を表示します。

要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...

HTML の marquee 属性の詳細な説明

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...

トラフィックの多いウェブサイト向けのソリューション

まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...

CSS パフォーマンスの最適化 - will-change の使用方法の詳細な説明

will-change は、要素にどのような変更が行われるかをブラウザに伝え、ブラウザが事前に最適化...

MySQL Null は 5 つの問題を引き起こす可能性があります (すべて致命的)

目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...

MySQL 子テーブルで外部キー制約チェックを無効にする方法

準備する:教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブルIDを参照します。テーブルt...

MYSQL メタデータ ロック (MDL ロック) の理論とロック タイプ テスト

目次MYSQL メタデータ ロック (MDL ロック) 学習理論とロック タイプ テスト1. 予備的...

チェックボックスの不確定プロパティの使用の紹介

Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...

HTML フォームタグチュートリアル (4):

ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...

Windows システムに MySQL を素早くインストールして展開する方法 (グリーンの無料インストール バージョン)

まずは緑色の無料インストール版のMySQLをダウンロードします。任意のフォルダに入れて構いません。今...

Windows での Apache+Tomcat7 負荷分散構成方法の詳細な説明

準備Windows Server 2008 R2 Enterprise (2.40GH、8GB、64...

Docker を使用して Redis マスター スレーブ レプリケーション クラスターを構築する

マスタースレーブレプリケーションモードのクラスターでは、通常、1 つのマスターノードと 2 つ以上の...

Redis を Docker コンテナとして素早くデプロイする方法

目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...