⊗jsrtPmRtUfD 40 of 47 menu

Duomenų atnaujinimas su FormData React Router

Mes turime funkciją updateProduct produkto duomenų atnaujinimui saugykloje. Dabar pereikime prie duomenų iš mūsų redagavimo formos.

Kai HTML forma yra pateikiama, naršyklė sukuria FormData objektą su duomenimis ir siunčia jį užklausos kūne į serverį. Be to, kiekvienos įvesties reikšmė yra išgaunama į objektą iš name atributo (todėl jie mums ir buvo reikalingi formoje, prisimenate?). Mes dabar žinome, kad React Router siunčia užklausas ne į serverį, o į maršruto action metodą, atitinkamai, ten pateks ir FormData. Pažiūrėkime kaip su tuo dirbti.

Pirmiausia atidarykime mūsų failą edit.jsx ir importuokime updateProduct:

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

Tada parašysime funkciją action maršruto objektui, kaip darėme anksčiau. Pridėkime ją iškart po funkcijos loader. Jai mes perduosime mūsų request ir URL parametrus:

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

Iš užklausos gausime FormData, tada išgausime iš jo duomenis kaip objektą, turinčią poras raktas: reikšmė ir naudodami updateProduct išsiųsime šiuos duomenis į saugyklą:

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

Beliko tik nueiti į main.jsx ir pridėti funkciją action į redagavimo maršruto objektą. Importuokime action:

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

Ir pridėkime jį į redagavimo maršruto objektą:

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

Dabar paleiskite programą, pridėkite keletą produktų į sąrašą, tada spustelėdami juos užpildykite formą ir spustelėkite išsaugojimo mygtuką. Nepamirškite nueiti į kūrėjo skydelį į localforage skiltį ir atnaujinti saugyklą. Dabar keyvaluespairs skiltyje galime matyti objektus masyve products su mūsų įvestais duomenimis.

Paimkite programą, kurią sukūrėte užduotyse paskutinei pamokai. Naudodamiesi pamokos medžiaga, sukurkite funkciją action studento duomenų redagavimo maršrutui, pridėkite ją į redagavimo maršruto objektą. Atidarykite kūrėjo skydelį ir įsitikinkite, kad keitimams atlikus atnaujinti duomenys iš tikrųjų rodomi localforage skirtuke.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti