⊗jsrtPmRtDR 45 of 47 menu

Брисање руте у Реацт Роутеру

Функцију за брисање података из складишта смо написали. Хајде сада да додамо у верстку странице производа део кода са дугметом за брисање производа. Додајмо га одмах после дугмета за уређивање. Омотајмо оба облика са дугмадима у див #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>

Додајмо и неких стилова у наш ЦСС фајл:

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

А сада ћемо креирати нову руту за брисање производа. За то отворите фасциклу routes и креирајте у њој фајл delete.jsx. Додајмо у њега одмах увоз redirect и функције за брисање deleteProduct:

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

А затим, природно, пишемо нашу функцију action, која ће позвати deleteProduct према id, а након брисања преусмерити нас на почетну страницу:

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ščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј