⊗jsrtPmRtDER 38 of 47 menu

Creación de una ruta para editar datos en React Router

En la lección anterior creamos un formulario para editar en un componente React separado EditProduct.

Ahora escribamos la función del cargador para la nueva ruta justo después de las importaciones y antes de la función EditProduct. Será igual que en product.jsx. A la función se le pasarán los parámetros URL y luego obtendremos el producto por su id:

export async function loader({ params }) { const product = await getProduct(params.productId); return { product }; }

Importemos getProduct desde forStorage.js:

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

Y ahora abriremos nuestro main.jsx e importaremos el componente que creamos EditProduct y el cargador:

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

Luego agreguemos en el array children el objeto de ruta para editar justo después de la ruta del producto:

children: [ { path: 'products/:productId', element: <Product />, loader: productLoader, }, { path: 'products/:productId/edit', element: <EditProduct />, loader: editProductLoader, }, ],

Ahora iniciemos la aplicación, creemos un producto, hagamos clic en él, y luego en el botón de editar y veremos nuestro formulario.

Lo único, aún necesitamos hacer que en los campos del formulario antes de editar se carguen los datos actuales. Para esto importemos en edit.jsx el hook useLoaderData:

import { Form, useLoaderData } from 'react-router-dom';

Y usémoslo para obtener los datos del cargador en la función EditProduct. Agreguémoslo antes del comando return:

const { product } = useLoaderData();

Ahora agreguemos en cada etiqueta input el atributo defaultValue con los valores correspondientes para cada input. Por ejemplo, el primer input ahora se verá así:

<input placeholder="name" type="text" name="name" defaultValue={product.name} />

Para los dos inputs restantes los valores serán respectivamente 'product.cost' y 'product.amount'. Aunque por ahora no tenemos datos en el formulario.

Tome la aplicación creada por usted en las tareas de lecciones anteriores. Usando los materiales de la lección, cree la función loader en edit.jsx para la ruta de edición de datos del estudiante.

Agregue en el array children el objeto de ruta para editar.

Agregue para su función EditStudent el código requerido en la lección.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar