Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Resposta da questão

Boa noite

Em relação a pergunta contida na url: https://cursos.alura.com.br/course/react-evolua-design-system-tailwindcss/task/134682 A resposta sinalizada como correta é a alternativa (B), porém no caso somente o que estiver sendo passado como "rest", element e children é o que realmente será renderizado e personalizado, ao passo que demais props, como variant, size, uma vez que não estão sendo inseridas no componente, não serão personalizadas, correto?, na realidade só estão sendo definidas como props, mas sem serem utilizadas como personalização.

const Tipography = ({ variant = '', size = '', children, element = 'p', ...rest }) => {
  const Element = element;
  return (
    <Element {...rest}>
      {children}
    </Element>
  );
};

export default Tipography;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigado

Felipe D.R

2 respostas
solução!

A sua observação tá certa Na verdade, a resposta correta da questão reflete a forma como o React e o TailwindCSS interagem no contexto do componente Tipography.

No código fornecido:

const Tipography = ({ variant = '', size = '', children, element = 'p', ...rest }) => {
  const Element = element;
  return (
    <Element {...rest}>
      {children}
    </Element>
  );
};

export default Tipography;

A propriedade element é utilizada para determinar qual elemento HTML será renderizado. Todas as demais propriedades, incluindo variant, size, e qualquer outra passada através do operador ...rest, são propagadas para o elemento renderizado.

A sua observação de que apenas as props "rest", element e children são diretamente utilizadas na renderização e personalização é precisa. As props variant e size são definidas como parâmetros padrão, mas não são diretamente utilizadas no corpo da função. No entanto, elas podem ser acessadas através da propriedade rest.

Show, obrigado pelo retorno