1
resposta

CSS não funcionando

Olá! Estou tendo problemas com o CSS não funcionar

import React from "react";
import Link from "../src/components/Link";

function Title({ children, as }) {
  const Tag = as;
  return (
    <React.Fragment>
      <Tag>
        {children};
      </Tag>
      <style jsx>{`
        ${Tag} {
          color: red;
          font-family: sans-serif;
        }
      `}</style>
    </React.Fragment>
  );
}
export default function HomePage() {
  return (
    <div>
      <Title as="h5">Alura Cases - home</Title>
      <Link href="/faq">Ir para FAQ </Link>
    </div>
  );
}
1 resposta

Olá, Mauricio! Tudo bem?

Analisando o seu código, percebo que você está tentando estilizar um componente dinâmico, onde a tag HTML é definida pela propriedade 'as'. No entanto, o problema está na forma como você está tentando aplicar o estilo.

Você está tentando usar a variável 'Tag' dentro do bloco de estilo, mas a sintaxe do CSS não permite isso. O CSS não entende variáveis JavaScript, então, quando você tenta usar ${Tag} dentro do bloco de estilo, o CSS não sabe o que fazer com isso.

Aqui está uma maneira alternativa de abordar o problema:

import React from "react";
import Link from "../src/components/Link";

function Title({ children, as }) {
  const Tag = as;
  return (
    <React.Fragment>
      <Tag style={styles.title}>
        {children};
      </Tag>
    </React.Fragment>
  );
}

const styles = {
  title: {
    color: 'red',
    fontFamily: 'sans-serif',
  }
}

export default function HomePage() {
  return (
    <div>
      <Title as="h5">Alura Cases - home</Title>
      <Link href="/faq">Ir para FAQ </Link>
    </div>
  );
}

Neste exemplo, estou usando a propriedade 'style' do React para aplicar estilos diretamente ao componente. Os estilos são definidos em um objeto JavaScript fora do componente e depois aplicados diretamente ao componente usando a propriedade 'style'.

Espero que isso resolva o problema que você está enfrentando. Continue estudando e explorando o Next.js, é uma ferramenta poderosa! Espero ter ajudado e bons estudos! -