⊗jsrtPmRtUfD 40 of 47 menu

Oppdatering av data med FormData i React Router

Vi har en funksjon updateProduct for å oppdatere produktdataene i lagringsplassen. La oss nå gå videre til dataene fra vårt redigeringsskjema.

Ved innsending av et HTML-skjema oppretter nettleseren et FormData-objekt med dataene og sender det i forespørselskroppen til serveren. Verdien for hvert inputfelt hentes inn i objektet fra name-attributten (det var derfor vi trengte dem i skjemaet, husker du?). Vi vet nå at React Router sender forespørsler ikke til serveren, men til action-metoden i vår rute, og følgelig vil FormData komme dit. La oss jobbe med dette.

La oss først åpne filen vår edit.jsx og importere updateProduct:

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

Deretter skal vi skrive en funksjon for action i ruteobjektet, slik vi gjorde tidligere. La oss legge den til rett etter loader-funksjonen. Vi vil sende vår request og URL-parametere til den:

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

Fra forespørselen vil vi hente FormData, deretter utvinne dataene fra den som et objekt som inneholder nøkkel: verdi-par og ved hjelp av updateProduct sende disse dataene til lagringsplassen:

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

Det eneste som gjenstår er å gå inn i main.jsx og legge til action-funksjonen i redigeringsruteobjektet. La oss importere action:

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

Og legge den til i redigeringsruteobjektet:

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

Start applikasjonen nå, legg til et par produkter i listen, deretter ved å klikke på dem fyll ut skjemaet og trykk på lagre-knappen. Ikke glem å gå inn i utviklerverktøyene i localforage-delen og oppdatere lagringsplassen. Nå i keyvaluespairs-delen kan vi se objekter i products-matrisen med våre innførte data.

Ta applikasjonen du opprettet i oppgavene til forrige leksjon. Ved å bruke materialet fra leksjonen, opprett en funksjon action for ruten for redigering av studentdata, legg den til i redigeringsruteobjektet. Åpne utviklerverktøyene og forsikre deg om at ved endringer vises de oppdaterte dataene mir på localforage-fanen.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis