⊗jsrtPmRtUfD 40 of 47 menu

Uppdatera data med FormData i React Router

Vi har en funktion updateProduct för att uppdatera produktdata i lagret. Låt oss nu gå vidare till data från vårt redigeringsformulär.

När ett HTML-formulär skickas skapar webbläsaren ett FormData-objekt med data och skickar det i förfrågan till servern. Värdet för varje inputfält extraheras till objektet från attributet name (det är därför vi behövde dem i formuläret, kommer du ihåg?). Vi vet nu att React Router skickar förfrågningar inte till servern, utan till metoden action i vår rutt, följaktligen kommer FormData att hamna där. Låt oss arbeta med detta.

Låt oss först öppna vår fil edit.jsx och importera updateProduct:

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

Sedan skriver vi en funktion för action i ruttobjektet, som vi gjorde tidigare. Låt oss lägga till den direkt efter funktionen loader. Vi kommer att skicka vår request och URL-parametrar till den:

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

Från förfrågan kommer vi att få FormData, sedan extrahera data från den till ett objekt innehållande par av nyckel: värde och med hjälp av updateProduct skicka dessa data till lagret:

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

Återstår bara att gå till main.jsx och lägga till funktionen action i redigeringsruttens objekt. Importera action:

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

Och lägg till den i redigeringsrutten:

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

Starta nu applikationen, lägg till några produkter i listan, fyll sedan i formuläret genom att klicka på dem och tryck på spara-knappen. Glöm inte att gå in i utvecklarpanelen i avdelningen localforage och uppdatera lagringen. Nu i avdelningen keyvaluespairs kan vi se objekten i arrayen products med våra inskrivna data.

Ta applikationen du skapade i uppgifterna från förra lektionen. Använd materialet från lektionen, skapa en funktion action för rutter för att redigera studentdata, lägg till den i redigeringsrutten. Öppna utvecklarpanelen och se till att vid ändringar visas uppdaterade data verkligen på fliken localforage.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa