⊗jsrtPmRtDR 45 of 47 menu

React Router-те жолды жою

Дерекқордан деректерді жою функциясын біз жаздық. Енді өнім бетінің версткасына өнімді жою үшін түймесі бар код бөлігін қосамыз. Оны түзету түймесінен кейін қосамыз. Екі түймесі бар форманы #control дивіне ораймыз. Содан кейін action-ке 'delete' мәнін жазамыз. Сондай-ақ пайдаланушыға өнімді жойғысы келетінін растау үшін диалог терезесін қосамыз:

<div id="control"> <Form action="edit"> <button type="submit">edit</button> </Form> <Form method="post" action="delete" onSubmit={(event) => { if (!confirm('Do you want to delete this product?')) { event.preventDefault(); } }} > <button type="submit">delete</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
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау