⊗jsrtPmRtADA 34 of 47 menu

Dodajanje podatkov z metodo action v React Router

V tej lekciji se bomo seznanili z metodo action objekta poti. Ta metoda se pokliče, ko aplikacija pošlje HTTP zahtevek tipa POST, PUT, PATCH ali DELETE (razen GET) vaši poti.

Za začetek uvozimo funkcijo za ustvarjanje produkta, ki smo jo napisali v prejšnji lekciji, v naš root.jsx:

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

Zdaj moramo ustvariti funkcijo action, ki jo bo klical React Router ob kliku na gumb za dodajanje produkta, postavimo jo za funkcijo loader:

export async function action() { const product = await createProduct(); return { product }; }

Odprimo main.jsx in uvozimo action:

import Root, { loader as rootLoader, action as rootAction } from './routes/root';

In jo nastavimo kot vrednost metode action za objekt poti. Komponenta Form prepreči brskalniku pošiljanje zahtevkov na strežnik ob pritisku gumba, temveč se obrne na metodo action naše poti. Tako zanimivo deluje usmerjanje na strani odjemalca z React Router:

const router = createBrowserRouter([ { path: '/', element: <Root />, errorElement: <ErrorPage404 />, loader: rootLoader, action: rootAction, children: [ { path: 'products/:productId', element: <Product />, }, ], }, ]);

Zaženimo našo aplikacijo. Odprimo zavihek 'Aplikacija' (Application za Chrome) v razvojnih orodjih, med različnimi tipi shrambe kliknimo na indexedDB, tukaj nas zanima localforage. Zdaj z klikom na gumb za dodajanje produktov v naši aplikaciji in osveževanjem shrambe localforage po kliku vidimo, kako se v keyvaluepairs v matriko products dodajajo objekti z različnimi id. Zmaga!!! To pomeni, da se v naši shrambi ustvarjajo zapisi! Seveda se seznam v naši aplikaciji tudi dopolnjuje. Namig: ne pozabite pozneje očistiti shranjenih podatkov te strani na zavihku 'Storage' v Application.

Vzemite aplikacijo, ki ste jo ustvarili v nalogah za prejšnje lekcije. Z uporabo gradiva lekcije ustvarite funkcijo action, dodajte jo v objekt korenske poti kot metodo action.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni