1
resposta

[Bug] Entendendo erros na nova versão do Next

Tive alguns erros como o print abaixo, diversas vezes. Eu queria entendê-lo melhor, levando em consideração que eu estou utilizando a nova versão do Next. Nesse caso em específico, resolvi o problema colocando o 'use client' dentro do index.js da HomeScreen, mas já fiz o mesmo para o GlobalStyle.js e o Footer.js. Apesar de ter conseguido contornar o problema, não consegui entender o porquê da renderização funcionar apenas utilizando o client component, mesmo para arquivos que são puramente regras de CSS, como o GlobalStyle.

Agradeço desde então quem puder ajudar :D

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

1 resposta

Oi Gabriela, tudo bem?

A mensagem de erro que você encontrou indica que está havendo uma tentativa de importar um componente que é exclusivo para o lado do cliente (client-only) em um módulo que é executado no lado do servidor (Server Component). No Next.js, há uma distinção entre código que é executado apenas no servidor, apenas no cliente, ou em ambos.

A partir da versão 12 do Next.js, foi introduzido o conceito de Middleware, que permite executar código antes das respostas serem completadas, e também foram feitas melhorias no suporte a Server Components e Edge Functions. Essas mudanças podem afetar como os componentes e módulos são carregados e executados.

No seu caso, ao mover o uso de 'use client' para o arquivo index.js da HomeScreen, você está indicando que esse componente deve ser executado apenas no cliente. Isso pode ser necessário para componentes que dependem do navegador ou de APIs do lado do cliente, como o window ou o document, que não estão disponíveis no servidor.

Pros arquivos como GlobalStyle.js, que são puramente regras de CSS, não deveria ser necessário usar 'use client', pois o CSS pode ser gerado no servidor e enviado ao cliente. No entanto, se você está usando uma biblioteca de CSS-in-JS que gera estilos no lado do cliente, talvez seja necessário garantir que esses estilos sejam aplicados apenas no cliente para evitar erros.

Se você continuar encontrando problemas, uma boa prática é verificar a documentação oficial do Next.js para entender as mudanças na versão que você está utilizando, e também procurar por notas de lançamento ou discussões na comunidade sobre problemas semelhantes. Além disso, certifique-se de que todas as suas dependências estejam atualizadas e compatíveis com a nova versão do Next.js.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software