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

Componente Button para de renderizar os paddings quando passo o argumento "classes" na funcao

Estava seguindo o exemplo da aula, mas por algum motivo assim que passo o argumento classe para a função, ele para de renderizar as classes "px-6" e "py-2", mas continua renderizando o "rounded-md" que está na constante "generalStyle". Achei estranho, parei o servidor e quando voltei ele deixou até de renderizar as cores e o "rounded-md". O engraçado é que as classes no painel do Chrome estão lá, mas é como se o tailwind ou as variáveis do CSS deixassem de funcionar ou algo assim. Testei também no Fiirefox, mas o problema persistiu.

Segue meu código:

export type ButtonProps = {
  children: React.ReactNode;
} & React.ButtonHTMLAttributes<HTMLButtonElement>

const Button = ({ children, className, disabled, ...rest }: ButtonProps) => {
  const generalStyle = 'rounded-md px-6 py-2';
  
  const Btn = (classes: string) => {
    return (
      <button
        className={`
          ${generalStyle} 
          ${classes}
          ${className}
        `}
        disabled={disabled}
        {...rest}
      >
        { children }
      </button>
    )
  }

  return Btn(disabled ? 'bg-bg-disabled text-text-disabled' : 'bg-primary text-white');
}

export default Button;

E o mais curioso é que mesmo que eu volte ao código do jeito que estava antes, ele continua dando este problema, preciso parar o servidor e voltar diversas vezes para voltar ao normal.

3 respostas

Continuei investigando e as classes são passadas para a tag html, porém é como se elas deixassem de existir no CSS.

<button class="rounded-md px-6 py-2 bg-primary text-white undefined">Click</button>

O "rounded-md" continuou funcionando, mas as demais classes não.

solução!

Fala, Thiago! Tudo jóia?

Aparentemente isso é um bug que ocorre quando a gente trabalha com o tailwind CSS e o Next.js. Em alguns momentos ele para de renderizar alguns estilos mas é só reiniciar a aplicação que volta. As vezes também é necessário deletar a pasta node modules e instalar as dependências novamente.

Ainda não consegui descobrir exatamente o motivo de acontecer isso, e por isso não consigo te dar uma resposta mais exata de como resolver esse problema em definitivo. Mas vou continuar investigando para tentar descobrir.

Espero que você esteja curtindo a formação, os próximos cursos vão te dar outras ferramentas para lidar com estilização dinâmica e condicional, e muitas outras coisas bem legais.

Abraços e bons estudos!

Tudo jóia Neilton, e você? Eu imaginei que fosse algo assim mas também não sei exatamente o que acontece, já que uma classe CSS funcionou e as demais não.

Muito obrigado pela ajuda! :D

Abraço!!