Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsrtPmRtDER 38 of 47 menu
◀ ▶

Criando uma Rota para Editar Dados no React Router

Na lição anterior, criamos um formulário de edição em um componente React separado EditProduct.

Agora vamos escrever a função loader para a nova rota, logo após as importações e antes da função EditProduct. Ela será igual à do product.jsx. Os parâmetros de URL serão passados para a função e, em seguida, obteremos o produto pelo seu id:

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

Vamos importar getProduct do forStorage.js:

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

Agora, vamos abrir nosso main.jsx e importar o componente que criamos, EditProduct, e o loader:

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

Em seguida, adicionaremos ao array children um objeto de rota para edição, logo após a rota do produto:

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

Agora, vamos iniciar o aplicativo, criar um produto, clicar nele e depois no botão de edição para ver nosso formulário.

Única coisa, ainda precisamos fazer com que os campos do formulário sejam pré-preenchidos com os dados atuais antes da edição. Para isso, importaremos no edit.jsx o hook useLoaderData:

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

E o aplicaremos para obter os dados do loader na função EditProduct. Vamos adicioná-lo antes do comando return:

const { product } = useLoaderData();

Agora, adicionaremos a cada tag de input o atributo defaultValue com os valores correspondentes para cada input. Por exemplo, o primeiro input ficará assim:

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

Para os dois inputs restantes, os valores serão respectivamente 'product.cost' e 'product.amount'. No entanto, por enquanto, ainda não temos os dados no formulário.

Pegue o aplicativo que você criou nas tarefas das lições anteriores. Usando os materiais da lição, crie a função loader em edit.jsx para a rota de edição de dados do estudante.

Adicione ao array children um objeto de rota para edição.

Adicione à sua função EditStudent o código solicitado na lição.

← →
↑
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