⊗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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부