この記事では、React Native ScrollViewのプルダウンリフレッシュ効果の具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 ScrollView の refreshControl プロパティはプルダウンの更新に使用され、垂直ビューでのみ使用できます。つまり、horizontal は 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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル)
以下のように表示されます。 LOCATE(部分文字列、文字列)文字列 str 内の部分文字列 sub...
序文JS の this ポインターは、初心者にとって常に頭痛の種でした。今日は、これが地面に落ちたと...
要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...
このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...
まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...
will-change は、要素にどのような変更が行われるかをブラウザに伝え、ブラウザが事前に最適化...
目次1. カウントデータが失われる解決2. 明確なデータ損失3.データ損失を選択解決4. Nullポ...
準備する:教師テーブルと生徒テーブルを定義し、生徒テーブルで教師テーブルIDを参照します。テーブルt...
目次MYSQL メタデータ ロック (MDL ロック) 学習理論とロック タイプ テスト1. 予備的...
Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...
ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...
まずは緑色の無料インストール版のMySQLをダウンロードします。任意のフォルダに入れて構いません。今...
準備Windows Server 2008 R2 Enterprise (2.40GH、8GB、64...
マスタースレーブレプリケーションモードのクラスターでは、通常、1 つのマスターノードと 2 つ以上の...
目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...