2017-12-16 12 views
0

私は簡単な管理者用アプリケーションを構築しています。機能の1つは、ユーザーがリストビューからコンテンツをエクスポートすることです。これまでのところ私は2つの考え方を念頭に置いています。リストビューからボタンを使用してデータをエクスポートする

  • 選択したフィルタ(お気に入り)に基づいてエクスポートします。
  • チェックボックスを使用して、テーブルから選択した行に基づいてエクスポートします。

は、私は2つのことがそれを達成するために必要な推測:

  • 「リストビュー」のどこかにボタンをレンダリングすることができる:「フィルタ」内「エクスポート」ボタンを追加するために素晴らしいことですセクション。フィルタを保持している「エクスポート」ボタンをレンダリングする方法を見つけることができませんでした。
  • 「エクスポート」ボタンを使用すると、データをダウンロードするためのカスタムURLを作成するためのフィルタ(リストビューのフィルタセクションから)を取得できます。チェックボックスを使用する場合は、選択した行をテーブルから検出し、そのデータをエクスポートします。

私は例を探していた、または他の同僚の質問に従っていましたが、私は何も似ていませんでした。任意の情報/例/プロジェクトは非常に高く評価されます。

答えて

1

これは全く解決できます。フィルタはredux形式で格納され、接続されているすべてのコンポーネントからアクセスできます。私は、あなたが、そのファイルを生成し、ファイルのURLで応答することができる、フィルタデータをpingできるAPIエンドポイントを持っていると推測しています。

1)接続されたボタンコンポーネントを作成します。これはまた、POST要求を生成するアクションをディスパッチすべきである)

https://marmelab.com/admin-on-rest/List.html#actions

2電流フィルタデータにアクセスするmapStateToProps方法を有するべきです。

https://marmelab.com/admin-on-rest/Actions.html#using-a-custom-action-creator

重要なこと:あなたは、ファイル自体がダウンロードされます方法を考える必要があります。あなたはオンザフライでURLを生成しているので、モデルデータには埋め込まれないため、アクセスできません。ファイル名とパスをコンポーネントにハードコーディングしなければならない場合があります。クリックすると常にダウンロードが行われます。ファイル生成自体は非同期操作になるため、これは些細なことではありません。このボタンをクリックすると、ダウンロードリンクが表示されているページにリダイレクトされるはずです。

0

krunalの回答を補うために、FileSaverと呼ばれるライブラリがあります。このライブラリは、jsonレスポンスを受け取り、その内容でファイル保存操作を開始したり、ファイル保存ダイアログを表示したり、選択したファイルに直接ダウンロードすることができます。

関連する問題