⊗jsrtPmRtUfD 40 of 47 menu

Opdatering van Data met FormData in React Router

Ons het 'n funksie updateProduct om produkdata in die stoor op te dateer. Laat ons nou voortgaan na die data van ons redigeervorm.

Wanneer 'n HTML-vorm gestuur word, skep die blaaier 'n FormData-objek met die data en stuur dit in die versoekliggaam na die bediener. Die waarde van elke invoerveld word onttrek na die objek vanaf die name-kenmerk (dit is hoekom ons dit in die vorm nodig gehad het, onthou jy?). Ons weet nou dat React Router versoeke nie na die bediener stuur nie, maar na die action-metode van ons roete, gevolglik sal die FormData ook daar beland. Kom ons werk hiermee.

Om te begin, maak ons ons lêer edit.jsx oop en voer updateProduct in:

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

Dan sal ons 'n funksie vir die action van die roete-objek skryf, soos ons voorheen gedoen het. Laat ons dit dadelik na die loader-funksie byvoeg. Ons sal ons request en URL-parameters daaraan oorhandig:

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

Van die versoek sal ons die FormData kry, dan die data daaruit onttrek in die vorm van 'n objek wat pare sleutel: waarde bevat en met behulp van updateProduct hierdie data na die stoor stuur:

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

Die enigste ding wat oorbly is om na main.jsx te gaan en die action-funksie by die redigeerroete se objek by te voeg. Kom ons voer die action in:

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

En voeg dit by die redigeerroete se objek:

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

Laat jou toepassing nou loop, voeg 'n paar produkte by die lys, vul dan die vorm in deur daarop te klik en druk op die stoorknoppie. Moenie vergeet om na die ontwikkelaarspaneel te gaan onder die localforage-afdeling en die stoor te verfris nie. Nou kan ons in die keyvaluespairs-afdeling die voorwerpe in die products-skikking sien met ons ingevoerde data.

Neem die toepassing wat jy in die opdragte van die vorige les geskep het. Deur van die lesmateriaal gebruik te maak, skep 'n funksie action vir die roete om studentedata te redigeer, voeg dit by die redigeerroete se objek. Maak die ontwikkelaarspaneel oop en maak seker dat wanneer veranderinge gemaak word, die opgedateerde data inderdaad op die localforage-oortjie vertoon word.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp