⊗jsrtPmRtUfD 40 of 47 menu

React Router'da FormData ile Veri Güncelleme

Depodaki bir ürünün verilerini güncellemek için updateProduct fonksiyonumuz var. Şimdi düzenleme formumuzdan gelen verilere geçelim.

Bir HTML formu gönderildiğinde, tarayıcı FormData nesnesini oluşturur ve verileri bir istek gövdesi olarak sunucuya gönderir. Üstelik, her inputun değeri name özniteliğinden (bu yüzden forma ihtiyacımız vardı, hatırlıyor musunuz?) nesneye çıkarılır. Artık biliyoruz ki React Router istekleri sunucuya değil, rotamızın action yöntemine gönderir, dolayısıyla FormData oraya gidecektir. Haydi bununla çalışalım.

Öncelikle edit.jsx dosyamızı açalım ve updateProduct'ı içe aktaralım:

import { updateProduct } from '../forStorage';

Sonra, daha önce yaptığımız gibi, rota nesnesi için action fonksiyonunu yazacağız. Onu loader fonksiyonunun hemen ardına ekleyelim. Ona request'imizi ve URL parametrelerini ileteceğiz:

export async function action({ request, params }) {}

İstekten FormData'yı alacağız, ardından onu anahtar: değer çiftleri içeren bir nesneye çıkaracağız ve updateProduct kullanarak bu verileri depoya göndereceğiz:

export async function action({ request, params }) { const formData = await request.formData(); const updates = Object.fromEntries(formData); await updateProduct(params.productId, updates); return 1; }

Geriye kalan tek şey main.jsx dosyasına gidip action fonksiyonunu düzenleme rotasının nesnesine eklemek. action'ı içe aktaralım:

import EditProduct, { loader as editProductLoader, action as editAction, } from './routes/edit';

Ve onu düzenleme rotasının nesnesine ekleyelim:

{ path: 'products/:productId/edit', element: <EditProduct />, loader: editProductLoader, action: editAction, },

Şimdi uygulamayı başlatın, listeye birkaç ürün ekleyin, ardından üzerlerine tıklayarak formu doldurun ve kaydet düğmesine basın. Geliştirici panelinde localforage bölümüne gidip depoyu yenilemeyi unutmayın. Artık products dizisindeki nesneleri, girdiğimiz verilerle keyvaluespairs bölümünde görebiliriz.

Önceki dersteki görevlerde oluşturduğunuz uygulamayı alın. Dersteki materyalleri kullanarak, bir öğrencinin verilerini düzenleme rotası için action fonksiyonunu oluşturun, onu düzenleme rotasının nesnesine ekleyin. Geliştirici paneline gidin ve değişiklikler yapıldığında güncellenmiş verilerin localforage sekmesinde gerçekten görüntülendiğinden 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