⊗jsrtPmRtDR 45 of 47 menu

React Routerでのルート削除

データストアからデータを削除する関数は作成しました。 では、プロダクトページのマークアップに、プロダクト削除用のボタンを含むコードを追加しましょう。 編集ボタンの直後に追加します。両方のボタンフォームを div #control で囲みます。 そして action に値 'delete' を記述します。 また、ユーザーが本当にプロダクトを削除したいか確認できるよう、ダイアログも追加します:

<div id="control"> <Form action="edit"> <button type="submit">編集</button> </Form> <Form method="post" action="delete" onSubmit={(event) => { if (!confirm('このプロダクトを削除しますか?')) { event.preventDefault(); } }} > <button type="submit">削除</button> </Form> </div>

CSSファイルにもスタイルを追加しましょう:

div#control { display: flex; } button { margin-right: 5px; }

では、プロダクト削除用の新しいルートを作成します。 そのためには、 routes フォルダを開き、その中に delete.jsx ファイルを作成します。 すぐに redirect と削除関数 deleteProduct をインポートしましょう:

import { redirect } from 'react-router-dom'; import { deleteProduct } from '../forStorage';

そして、もちろん、 id に基づいて deleteProduct を呼び出し、 削除後にメインページにリダイレクトする action 関数を記述します:

export async function action({ params }) { await deleteProduct(params.productId); return redirect('/'); }

あとは main.jsx を開くだけです。 私たちの action をインポートします:

import { action as deleteAction } from './routes/delete';

そして、削除ルートの action メソッドの値として設定します。 ルートオブジェクト自体は、 children 配列の末尾に追加します:

{ path: 'products/:productId/delete', action: deleteAction, },

これで、任意のプロダクトをクリックし、削除ボタンを使って削除できるようになりました。 開発者パネルの localforage を確認して、削除されたことを確かめてください。

過去のレッスンの課題で作成したアプリケーションを使用してください。 このレッスンの内容を参考に、学生削除用のボタンを追加し、削除用の新しいルートを作成し、 それを子ルートに追加してください。全てが正常に動作することを確認しましょう。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否