⊗jsrtPmRtGLDP 36 of 47 menu

Obtendo dados do loader por parâmetros de URL no React Router

Na lição anterior, escrevemos uma função para obter os dados da página do produto. Vamos importar getProduct no arquivo product.jsx:

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

Vamos escrever a função do loader loader logo após a importação e antes da função Product. Vamos passar os parâmetros da URL para ela:

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

Também vamos importar o hook useLoaderData para usar os dados retornados pelo loader:

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

Vamos aplicar useLoaderData, substituindo consequentemente a linha que cria o objeto product no início da função Product pela seguinte:

const { product } = useLoaderData();

E, claro, vamos mudar um pouco nossa markup, já que removemos o antigo objeto product. Vamos substituir o conteúdo dos parágrafos:

<p>Nome: {product.name}</p> <p>Preço: {product.cost}</p> <p>Quantidade: {product.amount}</p>

Pelo seguinte:

<p>Nome: {product.name ? product.name : <i>sem nome</i>}</p> <p>Preço: {product.cost ? product.cost : <i>desconhecido</i>}</p> <p>Quantidade: {product.amount ? product.amount : <i>desconhecida</i>}</p>

Agora só falta abrir o main.jsx e adicionar a importação do loader, vamos chamá-lo de productLoader:

import Product, { loader as productLoader, } from './routes/product';

E especificá-lo como o loader para o objeto de rota da página do produto, adicionando-o em children após a propriedade element:

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

Pronto, finalizamos o carregamento de dados para a página do produto! No entanto, ainda não temos nada para carregar. Inicie o aplicativo, adicione alguns produtos e clique neles na lista para verificar se tudo está funcionando.

Pegue o aplicativo que você criou nas tarefas das lições anteriores. Usando os materiais desta lição, implemente o loader, conecte-o e use os dados dele para a página do estudante.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar