Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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