⊗jsrtPmRtULD 31 of 47 menu

Uso de datos obtenidos por el cargador en React Router

En la lección anterior obtuvimos datos del almacenamiento usando loader. Para utilizar estos datos, usamos el hook useLoaderData. Abramos el archivo root.jsx y agreguemos el hook en la importación:

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

En la función Root ahora obtendremos los datos en la constante products y trabajaremos con ella. Si tenemos algunos productos, la lista se mostrará; si no, mostraremos en el párrafo 'no products here ...'. En la etiqueta nav ahora usamos un ciclo estándar para mostrar los productos obtenidos. Cada elemento estará envuelto en el componente Link y cada uno tendrá su propia dirección (hablaremos de esto más tarde). En consecuencia, si un producto no tiene nombre, se mostrará 'Unnamed' por defecto. Entonces, considerando lo anterior, ahora nuestro código para la función Root será así:

function Root() { const { products } = useLoaderData(); return ( <div id="main"> {products.length ? ( <nav> {products.map((product) => ( <Link key={product.id} to={`products/${product.id}`}> {product.name ? product.name : <i>Unnamed</i>} </Link> ))} </nav> ) : ( <p><i>no products here ...</i></p> )} <div id="product"> <Outlet /> </div> </div> ); }

Si reiniciamos la aplicación ahora y vamos a la página principal, veremos solo 'no products here ...', ya que aún no hemos guardado ningún producto en el almacenamiento.

Tome la aplicación creada por usted en las tareas de lecciones anteriores. Usando los materiales de la lección, agregue la visualización de los datos obtenidos del cargador con estudiantes, como se describe 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