⊗jsrtPmRtDR 45 of 47 menu

React Router'da Rota Silme

Veri deposundan veri silmek için fonksiyonu yazdık. Şimdi ürün sayfasının düzenine ürünü silmek için bir buton ekleyeceğimiz kodu ekleyelim. Onu düzenleme butonundan hemen sonra ekleyelim. Her iki formu ve butonları #control div'i içine alalım. Sonra action içine 'delete' değerini yazalım. Ayrıca kullanıcının ürünü silmek istediğini tekrar onaylaması için bir iletişim kutusu ekleyeceğiz:

<div id="control"> <Form action="edit"> <button type="submit">edit</button> </Form> <Form method="post" action="delete" onSubmit={(event) => { if (!confirm('Bu ürünü silmek istiyor musunuz?')) { event.preventDefault(); } }} > <button type="submit">delete</button> </Form> </div>

CSS dosyamıza biraz stil de ekleyelim:

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

Şimdi ürünü silmek için yeni bir rota oluşturacağız. Bunun için routes klasörünü açın ve içinde delete.jsx dosyasını oluşturun. Hemen redirect ve silme fonksiyonu deleteProduct import'unu ekleyelim:

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

Ve sonra, elbette, deleteProduct fonksiyonunu id ile çağıracak ve silme işleminden sonra bizi ana sayfaya yönlendirecek olan action fonksiyonumuzu yazıyoruz:

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

Şimdi sadece main.jsx dosyasını açmamız gerekiyor. action fonksiyonumuzu içe aktaralım:

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

Ve onu silme rotasının action metodu için değer olarak ayarlayalım. Rota nesnesinin kendisini children dizisinin sonuna ekleyeceğiz:

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

Artık herhangi bir ürüne tıklayıp silme butonunu kullanarak silebiliriz. Geliştirici panelindeki localforage'a bakarak bunu doğrulayabilirsiniz.

Önceki derslerdeki görevlerde oluşturduğunuz uygulamayı alın. Dersteki materyalleri kullanarak, öğrenci silmek için bir buton ekleyin, silme işlemi için yeni bir rota yapın, onu alt rotalara ekleyin. Her şeyin çalıştığından emin olun.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet