Aula 19
Curso React: Componentes Controlados
Summary
## Resumo da Criação do Componente Radio List
Neste tutorial, aprendemos a criar um componente chamado **Radio List**, que é uma lista de botões de rádio, semelhante ao que foi feito com o **Checkbox List**. Aqui estão os principais passos e conceitos abordados:
1. **Definição do Componente**:
- Criamos o arquivo `radioList.js` no diretório `src`.
- Importamos o React: `import React from 'react'`.
- Definimos um componente funcional `RadioList`.
2. **Recebendo Propiedades**:
- Recebemos `options` como props, assim como fizemos com o Checkbox List. Cada opção é um objeto contendo `id`, `label` e `value`.
3. **Mapeamento das Opções**:
- Usamos `map` para iterar sobre as opções e criar um botão de rádio para cada uma, importando o componente de rádio: `import Radio from 'radio'`.
4. **Passagem de Props**:
- Cada botão de rádio recebe o `name`, `label`, `value` e `checked` como props.
- O `checked` verifica se o valor da opção corresponde ao estado selecionado.
5. **Evento onChange**:
- O evento `onChange` é utilizado para manipular a troca de opções.
6. **Uso da Chave Única**:
- Cada opção precisa ter uma chave única para o React, geralmente utilizando o `id` de cada opção.
7. **Testes**:
- Definimos um array `generalOptions` para incluir as opções com seu `id`, `label` e `value`.
- Testamos a funcionalidade do Radio List para garantir que está funcionando corretamente.
Em resumo, a criação do Radio List envolveu a definição de um componente funcional que mapeia um array de opções, criando botões de rádio dinâmicos e gerenciando sua seleção através do estado.
Video Transcript
Na mesma maneira que nós criamos o componente chamado checkbox list, nós também podemos
criar radio list, uma lista com vários botões de rádio.
Então em vez de ter esses dois rádios aqui, podemos criar um componente de enérico para
criar aqui uma lista de botões de rádio.
Se você dá as opções da mesma maneira que a gente fez com checkbox list, com o label
e o value de cada botão de rádio, dá para fazer um componente de enérico.
Então vamos começar, iniciar o nosso desenvolvimento, criar um arquivo chamado radio list.js dentro
da parte da src e de novo o boilerplate port react from react sempre precisa do react,
define a função, componente funcional, desculpe eu vou ter rádio, react from react e radio
list props e desporta, certo retorno template.
Antes de retornar a gente vai fazer um mapping da mesma maneira de checkbox list, se você
não se lembra vou aqui no checkbox list, você note que tem esse mapping aqui, da mesma
maneira a gente vai receber opções como props, muito similar, parecida da mesma maneira
assim, cada opção vai ser um objeto que tem o id, label e o valor, gente vai fazer
um map para criar componentes, nesse caso vai ser rádio, então vai precisar do rádio
import rádio from radio aqui, vamos lá, criar uma variável chamada radios, vamos lá
props.opções.map, cada objeto opção, vamos retornar o que?
uma rádio, certo vamos definir os props aqui, vamos voltar aqui um pouco para o app, só
para ver, então o que a gente aqui, a gente definiu componente que a gente vai usar dessa
maneira aqui, radio list, note que o nome é o mesmo, então esse cara aqui, vamos copiar,
vai ser o mesmo para todas as botões de rádio, mas o label e o value vão mudar, não é?
então a gente pode passar options, vamos chamar, sei lá, general options, que vai
conter o label e value para cada opção, isso note que o one change é o mesmo, então
deixa eu copiar, o one change vai ser desse, um general change, o checked, vamos ver o
check, o checked é, compara sempre esse aqui com o valor, do próprio rádio aqui, o
valor, então a gente pode talvez dar um checked option para ser o state aqui, entendeu assim,
check option vai ser, só o state, qualquer coisa, o que tiver definido no estado vai
ser a opção que está marcada, entendeu, e a gente vai dar essa checa do checked dentro
do próprio, quando a gente criar os componentes de rádio, está faltando alguma coisa, a gente
deu one change, as options, o name assim por diante está tudo ok, vamos lá para o radio,
certo?
Voltando aqui, deixa eu só copiar isso para ter um referência, então, primeiramente para
cada opção vamos criar um rádio, o rádio vai ter o nome de todos, como prop ao rádio
list, que vai ser dentro do props.name, o rádio tem o que mais, deixa eu copiar o radio aqui,
já tinha, copiar ali para ter referência também, o rádio tem o name, fizemos o name,
tem um label e tem um value, então vamos fazer o label, qual o label aqui, vai ser o option
ponto label, a gente ainda não definiu o general options, depois disso aqui a gente vai definir,
vamos lá fazer o value, vai ser da onde, vai ser do próprio rádio, que é a opção,
que está dentro da opção, option ponto value e o checked, então checked, esse botão vai
ser checado se o que, se a props.checked option foi igual ao valor desse rádio, nesse caso
o option ponto value, por exemplo, se esse rádio tivesse valor masculino, esse aqui seria
masculino, iria comparar com a propriedade do estado, se a propriedade do estado estiver
masculino também, significa que esse botão está marcado, se não, não está marcado,
entendeu? Voltando aqui, on change vai ser dado pelo próprio rádio list,
voltando aqui, props, se afetar as propriedades dadas ao rádio list, on change, entendeu?
Mais uma coisa, a gente está usando o map, se lembra que o react, se a gente fizer o map,
dessa maneira a gente já precisava do quê? Do anki, nesse caso a gente vai usar aqui de cada
opção, o id, tem que ser sempre um identificador exclusivo, diferente para cada opção, certo?
E finalmente depois de fazer as our rady rádios, dá um return aqui, vamos pôr tudo dentro
o endive com os rádios, certo? Vamos aqui, voltando ao app, vamos ver se vai funcionar,
opa, rádio list não está definido, vamos lá para cima e portar, rádio list,
ah, general options não está definido, esquecei de definir general options, vamos aqui,
da mesma maneira que a gente criou o fruto options, vamos definir general options, array de
rádios, object é o id, label, qual era o primeiro? Asculino eu acho, e tinha um valor,
certo? Cria outra opção, opa,
é menina, certo? Criamos, vamos salvar, e agora vamos testar, opa, parece que está funcionando,
mas o check não está, o que que aconteceu? Opa,
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: