Ganchos React, adereços e TypeScript, um guia de 'como fazer'.

Na transição do uso do React com JavaScript para o TypeScript, a coisa com a qual mais me esforcei foi digitar corretamente meus ganchos e passá-los como acessórios.
Como algo tão simples em JavaScript pode me causar tantos problemas no TypeScript ?!
Com este artigo, espero salvá-lo da dor de cabeça que tive que passar antes de descobrir como elas funcionavam!

Primeiras coisas primeiro:

Quando criamos um gancho, precisamos passar o tipo com o qual esperamos que esteja em conformidade:

const [title, setTitle] = useState<string>(“”);
const [amount, setAmount ] = useState<number>(0);
const [Selected, setSelected] = useState<boolean>(false);

Primeiro, precisamos criar um tipo definindo como nosso objeto deve ser. Digamos que estejamos tentando armazenar as informações de uma pessoa.

type Person = {
  name: string; 
  address: string;
  married: boolean;
}

const [person, setPerson] = useState<Person>({
name: “”,
address: “” ,
married: false
})

E se quisermos criar um gancho que abrigue uma série de pessoas?
Isso é tão direto:

const [people, setPeople] = useState<person[]>([])

Que tal passar ganchos como adereços?

A mágica acontece quando digitamos os adereços que nosso componente filho do TypeScript está esperando receber. É quando nossos dois melhores amigos, React.Dispatch e React.SetStateAction, entram em ação.

Quando chamamos um gancho setState em um componente filho, o React despacha um SetStateAction. Nosso trabalho é simples: precisamos fornecer o tipo que define a aparência das informações em SetStateAction.

type Props = {
  people: people[];
  setPeople: React.Dispatch<React.SetStateAction<people[]>>;
  title: string;
  setTitle: React.Dispatch<React.SetStateAction<string>>;
}

const ChildComponent: React.FC<Props> = ({people, setPeople, title, setTitle}) => { }

Suggested posts

Evitando as consequências devastadoras de um derrame: aprendendo com a jornada de uma família.

Evitando as consequências devastadoras de um derrame: aprendendo com a jornada de uma família.

Introdução O AVC é uma emergência médica que pode atingir qualquer pessoa a qualquer momento. Ocorre quando o fluxo sanguíneo para uma parte do cérebro é interrompido, levando a uma perda repentina da função cerebral.

Meus recursos de codificação mais usados

Meus recursos de codificação mais usados

Esta semana, recebi um e-mail de um membro da lista de e-mails diários. Eles queriam saber: quais recursos você visita diariamente, semanalmente e mensalmente? Ótima pergunta! Fico feliz em tentar compartilhar algumas ideias sobre meu fluxo de trabalho e os principais recursos que uso.

Related posts

Criando um ambiente de trabalho seguro

Criando um ambiente de trabalho seguro

“Ele vai me proteger quando eu estiver em perigo. Ele me esconderá em sua tenda.

A revolução no local de trabalho: os principais especialistas discutem o trabalho híbrido e remoto

A revolução no local de trabalho: os principais especialistas discutem o trabalho híbrido e remoto

No atual cenário de negócios em rápida evolução, o conceito de trabalho híbrido e remoto ganhou um impulso sem precedentes. À medida que as empresas continuam a se adaptar às mudanças nas necessidades e expectativas de seus funcionários, especialistas de várias áreas se reuniram para discutir os benefícios, os desafios e o futuro dessa forma transformadora de trabalhar.

3 maneiras comprovadas de melhorar sua habilidade de escrita

Os benefícios de escrever e estratégias para ajudá-lo a fazê-lo

3 maneiras comprovadas de melhorar sua habilidade de escrita

Em 2022, com o lançamento do GPT-3, a habilidade de escrita parece se tornar menos importante. Com a IA, pessoas com redação ruim também podem gerar funcionários de qualidade.

O desafio de leitura Goodreads é tóxico

O desafio de leitura Goodreads é tóxico

A coceira na minha mão aumentou enquanto eu negociava com o livreiro local por mais um livro. Este livro, como o resto que comprei recentemente, encontraria seu trono na minha pilha 'To Be Read' (TBR); e ainda assim, eu comprei.