⊗jsrxPmATSL 56 of 57 menu

Lista de Vendedores no Redux

Nas lições anteriores, terminamos o conteúdo principal. Agora, usando thunk, obtemos uma lista de produtos do servidor e podemos salvar um novo produto no servidor. Vamos entender os vendedores. Afinal, recebemos dados para eles também. Vamos criar uma página separada com a lista de vendedores.

Vamos abrir nosso aplicativo de produtos, e na sua pasta sellers. Vamos criar nesta pasta o arquivo SellersList.jsx. Aqui usaremos useSelector, Link e selectAllSellers, cujo código escreveremos em sellersSlice.js mais tarde:

import { useSelector } from 'react-redux' import { Link } from 'react-router-dom' import { selectAllSellers } from './sellersSlice'

Em seguida, criaremos o próprio SellersList. Nele, obteremos todos os vendedores usando o hook useSelector, depois obteremos a marcação para a lista de vendedores em um loop map, onde cada nome de vendedor será um link para sua página. E no final, retornaremos a marcação com o título e a lista obtida:

export const SellersList = () => { const sellers = useSelector(selectAllSellers) const sellersToRender = sellers.map((seller) => ( <li key={seller.id}> <Link to={`/sellers/${seller.id}`}>{seller.name}</Link> </li> )) return ( <div> <h2>Vendedores:</h2> <ul>{sellersToRender}</ul> </div> ) }

Em seguida, vamos para o arquivo sellersSlice.js e, por analogia com os seletores em productsSlice.js, criaremos no final do arquivo dois seletores após a exportação do redutor:

export const selectAllSellers = (state) => state.sellers export const selectSellerById = (state, sellerId) => state.sellers.find((seller) => seller.id === sellerId)

Agora precisamos definir a rota para a página com a lista, para isso abrimos o arquivo App.jsx e no array de rotas filhas children adicionamos mais um objeto (não se esqueça de importar o componente SellersList):

{ path: '/sellers', element: <SellersList />, },

Para que nosso link 'Vendedores' no menu funcione, vamos para o arquivo root.jsx (faz tempo que não íamos lá... ) e substituir a tag a pelo elemento NavLink:

<NavLink to="/sellers" end> Vendedores </NavLink>

E por último. Para que em nosso menu o link ativo seja destacado, e fique claro em qual página estamos, adicionaremos um estilo em index.css:

nav a.active { color: purple; }

Vamos iniciar nosso aplicativo. Agora podemos entrar na página com os vendedores, clicando em 'Vendedores' no menu. Antes, claro, precisamos clicar em 'Produtos' no menu, caso contrário nossos produtos não serão carregados. Na próxima lição, faremos uma página para cada vendedor e com isso terminaremos o estudo deste tutorial sobre Redux.

Abra seu aplicativo com os estudantes. Tendo estudado os materiais da lição, na pasta teachers crie o arquivo TeachersList.jsx. Usando este componente, você exibirá a lista de professores. Importe para ele os componentes e hooks necessários.

Escreva o código para o componente TeachersList, obtenha nele todos os professores e faça uma lista de professores teachersToRender, deixe em cada linha desta lista exibir seus sobrenomes e iniciais, e entre parênteses a disciplina que eles lecionam. Deixe cada sobrenome e iniciais serem um link, que leva a uma página separada para cada professor. Em seguida, no final do código do componente, retorne a marcação com o título e a lista criada.

No final do arquivo teachersSlice.js, crie um par de funções-seletor selectAllTeachers e selectTeacherById, como mostrado na lição.

Em App.jsx, conecte mais uma rota filha para a página com os professores.

No arquivo root.jsx, no menu para 'Professores', substitua a tag a por NavLink, como mostrado na lição. Faça com que o link ativo no menu se destaque de alguma forma, adicionando estilos para isso em index.css.

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