ショッピングカートのスライド削除効果を実装するReactネイティブサンプルコード

ショッピングカートのスライド削除効果を実装するReactネイティブサンプルコード

基本的にすべてのeコマースプロジェクトにはショッピングカートの機能があります。これはreact-nativeに関する記事です。ネイティブAndroidについては長い間書いていませんでした。ネイティブ ショッピング カートを作成していたとき、製品に関する本質を問うような疑問に遭遇したのを覚えています。スワイプして削除する機能は iOS では可能なのに、Android では実装が難しいのはなぜでしょうか?この時、WeChatを開いてみると、Android版のWeChatも長押しで操作しているのに対し、iOS版はスライド操作で操作しており、2つのプラットフォームのシステムインタラクション操作が異なっていることがわかりました。もちろん、結局私は、スライド削除を実行するために、さまざまなサードパーティライブラリを静かに探し続けました。

rnのプロジェクトは、リストスライド操作用のインターネット上で見つかったサードパーティのライブラリでもあります。githubアドレス react-native-swipe-list-view

最も基本的な使用法はflatListに似ており、データ属性は配列データソースで、renderItemはデータからデータを1つずつ取得し、リストにレンダリングします。

<スワイプリストビュー
  データ={this.state.listViewData}
  レンダリングアイテム = {this.renderItem}
  keyExtractor={this.keyExtractor}
/>

このとき、通常の flatList エフェクトと同様に、左または右にスライドすることはできません。左右へのスライドを有効にするには、renderHiddenItem 属性を追加します。 renderHiddenItem は、非表示のコンテンツをレンダリングします。非表示のコンテンツの位置は、フレックス レイアウトによって制御されます。次の例では、水平レイアウトを使用し、space-between を通じて左側と右側のコンテンツを制御し、左または右にスライドすると非表示のコンテンツが表示されるようにしています。

//これは左右にスライドできます renderHiddenItem = (data, rowMap) => {
  戻る <View style={{
    フレックス: 1,
    flexDirection: '行'、
    justifyContent: 'スペースの間'
  }}>
    <Text>左</Text>
    <Text>右</Text>
  </表示>
}

左にスワイプできるだけで十分であり、justifyContent: 'flex-end' プロパティを使用して削除ボタンのコンテンツを右端に配置し、SwipeListView プロパティのdisableRightSwipe を設定して右スワイプ操作を禁止します。

renderHiddenItem = (データ、行マップ) => {
  戻る <View style={{
    フレックス: 1,
    flexDirection: '行'、
    justifyContent: 'flex-end'、
  }}>
    <TouchableOpacity スタイル={{
      背景色: '#FF496C',
      幅: 80,
      justifyContent: 'center'、
      alignItems: 'center'
    }}>
      <Text style={{color:'#fff'}}>削除</Text>
    </タッチ可能な不透明度>
  </表示>
}

この時、左にスワイプすると右側に削除ボタンが表示されるのが分かりますが、常に開いた状態になるわけではありません。開いた状態にするには rightOpenValue={-80} 属性も追加する必要があります。

<スワイプリストビュー
  右スワイプを無効にする
  データ={this.state.listViewData}
  レンダリングアイテム = {this.renderItem}
  keyExtractor={this.keyExtractor}
  renderHiddenItem={this.renderHiddenItem}
  右オープン値={-80}
/>

もう一つ注意すべき点は、renderItem がリストをレンダリングしているとき、公式の推奨では、<View/> ではなく、クリック可能でタッチに反応するビューを最外層に使用することです。通常、ビューが開かれているときに別のビューをクリックすると、開かれている項目はデフォルトで閉じられます。最外層が <View/> の場合、この効果は発生しません。

// 最も外側のレイヤーは TouchableHighlight です
レンダリングアイテム = ({item, index}, rowMap) => {
  戻り値 <TouchableHighlight
    押すと{() => {
    }}
    アンダーレイカラー={'#fff'}>
    ...
  </タッチ可能なハイライト>
}

この時点で、スライドして削除する効果は基本的に満たされています。 後続は、追加および削除操作のためのビジネス ロジックとデータ ソース更新ページです。

これで、ショッピングカートのスライド削除効果を実装するための react-native のサンプルコードに関するこの記事は終了です。さらに関連する react-native スライド削除コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。

以下もご興味があるかもしれません:
  • リアクトネイティブのスライディングシーリング効果の実装プロセス
  • Reactのスライド画像検証コードコンポーネントのサンプルコード
  • Reactはダブルスライダークロススライドを実装します

<<:  vue 要素 el-transfer にドラッグ機能を追加

>>:  Angularが予期しない例外エラーを処理する方法の詳細な説明

推薦する

Centos7 で yum を使用して Mysql5.7.19 をインストールする詳細な手順

Centos7 の yum ソースには、mysql の代わりに mariaDB が使用されているため...

Dockerコンテナのホスト間マルチネットワークセグメント通信ソリューションの詳細説明

1. マックヴラン前回のブログ投稿で紹介した Docker コンテナのホスト間通信を実現するための ...

モバイル開発チュートリアル: ピクセル表示の問題の概要

序文モバイル端末の開発の過程で、モバイル端末のディスプレイはデスクトップ端末のディスプレイとは一般的...

web.config (IIS) および .htaccess (Apache) の構成

xml <?xml バージョン="1.0" エンコーディング="...

最初のReactページを作成する方法

目次Rractとは何ですか?背景React スキャフォールディングJSXとは何かRractとは何です...

要素のフォームコンポーネントに関する注意事項

要素フォームとコード表示詳細はエレメントフォーム公式サイトをご覧ください構造と機能の分析紹介とソース...

Linux に nodejs 環境とパス構成をインストールするための詳細な手順

Linux に Node.js をインストールする方法は 2 つあります。1 つは簡単で、解凍して使...

Vue開発の一般的な手法の詳細な説明

目次$nextTick() $forceUpdate() $セット() .sync——2.3.0 以...

Linux ファイル管理コマンド例の分析 [権限、作成、削除、コピー、移動、検索など]

この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...

MySQL 5.7.20\5.7.21 無料インストール版のインストールと設定のチュートリアル

参考までに、mysql 5.7.20 / 5.7.21 をダウンロード、インストール、構成します。具...

Linux CentOS 7.4 で mysql5.7.20 のパスワードを変更する方法

MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...

複数の X 軸を使用して 7 日間の天気予報を実現するための Echarts サンプル コード

目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...

Office ファイルのオンライン プレビュー用の Vue サンプル コード

最近、電子アーカイブに取り組んでおり、バックエンドではファイルの Huawei Cloud OSS ...

モバイル ブラウザのビューポート パラメータ (Web フロントエンド デザイン)

モバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置します。このウィン...

MySQLに絵文字表現を挿入する方法

序文今日、オープンソース プロジェクトのフィードバック フォームを設計していたところ、絵文字表現を挿...