⊗jsrtPmRtUfD 40 of 47 menu

Opdatering af data med FormData i React Router

Vi har en funktion updateProduct til at opdatere produktdata i lagringen. Lad os nu gå videre til dataene fra vores redigeringsformular.

Når en HTML-formular sendes, opretter browseren et FormData-objekt med dataene og sender det i anmodningens krop til serveren. Desuden udtrækkes værdien af hvert inputfelt til objektet fra attributten name (derfor havde vi brug for dem i formularen, husker I?). Vi ved nu, at React Router sender anmodninger ikke til serveren, men til metoden action i vores rute, følgelig vil FormData ende der. Lad os arbejde med dette.

Til at starte med, lad os åbne vores fil edit.jsx og importere updateProduct:

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

Derefter skriver vi en funktion for action i ruteobjektet, som vi gjorde tidligere. Lad os tilføje den straks efter loader-funktionen. Vi vil give den vores request og URL-parametre:

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

Fra anmodningen vil vi få FormData, derefter udtrække dataene fra det som et objekt, der indeholder nøgle: værdi-par og ved hjælp af updateProduct sende disse data til lagringen:

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

Der er kun tilbage at gå ind i main.jsx og tilføje funktionen action til objektet for redigeringsruten. Lad os importere action:

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

Og tilføje den til redigeringsroutens objekt:

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

Start nu applikationen, tilføj et par produkter til listen, klik derefter på dem, udfyld formularen og tryk på gem-knappen. Glem ikke at gå ind i udviklerpanelet under localforage og opdatere lagringen. Nu kan vi i sektionen keyvaluespairs se objekterne i arrayet products med vores indtastede data.

Tag den applikation, du oprettede i opgaverne til den forrige lektion. Brug materialet fra lektionen, opret en funktion action for ruten til redigering af studerendes data, tilføj den til objektet for redigeringsruten. Åbn udviklerpanelet og sikr dig, at ved ændringer vises de opdaterede data virkelig under fanen localforage.

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