⊗jsrtPmRtADA 34 of 47 menu

Aggiunta di dati con il metodo action in React Router

In questa lezione faremo conoscenza con il metodo action dell'oggetto route. Questo metodo viene chiamato quando l'applicazione invia una richiesta HTTP di tipo POST, PUT, PATCH o DELETE (tranne GET) alla tua route.

Per iniziare, importiamo la funzione per creare un prodotto, che abbiamo scritto nella lezione precedente, nel nostro root.jsx:

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

Ora dobbiamo creare la funzione action, che React Router chiamerà al click sul pulsante di aggiunta prodotto, posizioniamola dopo la funzione loader:

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

Apriamo main.jsx e importiamo action:

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

E impostiamola come valore del metodo action per l'oggetto route. Il componente Form impedirà al browser di inviare richieste al server quando si preme il pulsante, ma si rivolgerà al metodo action della nostra route. Ecco come funziona in modo interessante il routing lato client con React Router:

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

Avviamo la nostra applicazione. Apriamo la scheda 'Applicazione' (Application per Chrome) nel pannello dello sviluppatore, tra i vari tipi di archivi clicchiamo su indexedDB, qui ci interessa localforage. Ora cliccando sul pulsante di aggiunta prodotti nella nostra applicazione e aggiornando l'archivio localforage dopo il click vediamo come in keyvaluepairs nell'array products vengano aggiunti oggetti con diversi id. Vittoria!!! Ciò significa che nel nostro archivio vengono create delle voci! Naturalmente anche l'elenco nella nostra applicazione si aggiorna. Suggerimento: non dimenticate di pulire poi i dati salvati di questa pagina nella scheda 'Storage' in Application.

Prendete l'applicazione creata da voi nei compiti delle lezioni precedenti. Utilizzando il materiale della lezione, create la funzione action, aggiungetela all'oggetto della route root come metodo action.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta