⊗jsrxPmRDMDO 30 of 57 menu

Reutilização de Dados de um Slice no Redux

Na lição anterior, adicionamos ao formulário de adição de produto mais um campo com uma lista suspensa para selecionar o vendedor que o lista. Suponha que agora também precisemos exibir essa informação em vários outros lugares do aplicativo. Para isso, não vamos duplicar o código cada vez, mas simplesmente criar um componente separado, no qual extrairemos os dados do slice e os exibiremos nas partes do aplicativo onde precisamos.

Vamos abrir nosso aplicativo de produtos. Agora, na pasta products, vamos criar mais um arquivo: SellerOfProd.jsx. Para começar, vamos importar o hook useSelector, com o qual obteremos o slice com o produto necessário:

import { useSelector } from 'react-redux'

Em seguida, extrairemos do store o produto necessário pelo id do vendedor, que passaremos ao nosso novo componente via props:

export const SellerOfProd = ({ sellerId }) => { const seller = useSelector((state) => state.sellers.find((seller) => seller.id === sellerId) ) }

E, caso o vendedor exista, retornaremos seu nome. Se não existir, retornaremos 'unknown':

return <span>por {seller ? seller.name : 'unknown'}</span>

Agora, vamos importar nosso novo componente em ProductsList.jsx e inseri-lo na função ProductsList imediatamente após o título com o nome do produto. Como você pode ver, passamos a ele o id via props:

<SellerOfProd sellerId={product.seller} />

Agora, se iniciarmos nosso aplicativo, adicionarmos um novo produto e o encontrarmos na lista, veremos que ele ganhou um vendedor, enquanto os produtos adicionados automaticamente na inicialização do aplicativo terão 'unknown'.

Um pequeno aparte: se o seu eslint no editor VS Code reclamar sobre sellerId, mas o aplicativo estiver funcionando, você pode ignorar isso por enquanto ou abrir o arquivo .eslintrc.cjs do seu aplicativo e em rules adicionar "react/prop-types": "off".

É evidente que gostaríamos de adicionar informações sobre o vendedor também na página do produto. Para isso, vamos inserir no código de ProductPage, após o título com o nome do produto, novamente esta linha e verificar se tudo funciona:

<SellerOfProd sellerId={product.seller} />

Abra seu aplicativo de estudantes. Após estudar o material da lição, na pasta students crie um arquivo para o componente TeacherForStudent. Como resultado, o componente deve retornar o nome completo do professor e, entre parênteses, a disciplina que ele leciona. Encontre o professor necessário usando o hook useSelector. Se o professor para este estudante estiver ausente, exiba 'anonym'.

Usando o componente obtido na tarefa anterior, exiba os dados do professor para cada estudante na página de lista de estudantes.

Faça o mesmo que na tarefa anterior, mas para a página individual 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