2017-07-04 4 views
1

私のバックエンドAPIは、GET_LIST操作のカーソルベースのページネーションをサポートしています。Admin-on-restを使用した「カーソル」によるページ設定

API: {apiUrl}/{resource}?fltr={limit:100} 

Response: 
{ 
data: [], 
next: {reference_url_to_the_next_paginated_data_set} 
} 

既存のAORページングインフラストラクチャでこの種のページングをサポートするには、どのような方法が最適ですか?

+0

のようなあなたのデータグリッドでこのカスタムページ付け部品を使用しますか? – Hugo

答えて

0

レスポンスとリクエストの種類を処理するカスタムレスクライアントを作成する必要があります。あなたのクライアントがGET_LIST型要求をしたときにX-Total-Countヘッダを設定するにはAPIが必要です。

https://marmelab.com/admin-on-rest/RestClients.html

1

私はカスタム佐賀、アクションの作成者とリデューサーを使用してこれを達成することになりました。

  1. GET_LIST_SUCCESSごとにカスタムSagaを用意し、そのリソースに対してカスタムの「UPDATE_PAGINATION」アクションをディスパッチします。
  2. カスタムページネーションリデューサを使用してそのアクションを処理します。レデューサーは、各リソースの「ページング」状態をレデックスストア内でページごとに作成し、維持します。
  3. 「次へ」および「前へ」があるリソースのページング状態を購読している接続済みページングコンポーネントは、ボタンと「現在のページ」の状態を示します。 「次へ」または「前へ」ボタンのオンクリックで、「currentPage」の「nextUrl」または「previousUrl」を取り出し、AORのフェッチ・メタを使用してそのリソースの「データ」状態を更新します。

  4. はあなたがこのためのソリューションを得たので、

<List resource="myResource" pagination={<CustomPagination />} />

+0

共有できるコード例がありますか?カウントと現在のオフセットをどのように維持しますか – joshblour

関連する問題