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

Imagens não aparecem

As imagens não estão sendo encontradas, não marca erro no console. Fiz também o absolute import e caso alguém achei meio estranho, é que estou adaptando o module css para o styled-components.

Github: https://github.com/ananazario/spa-posts-react.git

3 respostas
solução!

Olá, Ana Carolina! Tudo bem?

Então, isso tem a ver com a forma que o React processa as imagens!

Diferente da forma tradicional quando usamos o HTML e importamos passando o caminho absoluto da imagem, no React você precisa importar a imagem como um módulo. Isso acontece porque os navegadores não interpretam o código React (Aquilo que o React retorna).

Você pode imaginar que porque tem um arquivo HTML lá tá tudo Ok, esse arquivo já serve como o HTML que o navegador irá ler e entender, mas o React adiciona elementos na interface de forma dinâmica, e o que o React retorna (o que tá dentro do return dos componentes que parece HTML) não é HTML.

Então, existem os bundlers, como o webpack e o Vite. Eles possuem scripts que manipulam o código React e transpilam (interpretam) para algo que o Navegador consiga entender.

Então, quando você coloca no src da tag img dentro do retorno de um componente React, o webpack não vai conseguir processar essa imagem. Você precisa importar ela, como um módulo, e passar essa importação no src={img}.

Assim, quando o webpack for transpilar o código react ele vai lá, vê o caminho dessa importação, pega a imagem que tá nesse caminho e coloca no lugar certinho que a imagem tem que tá, da forma que o navegador entende e pode renderizar corretamente.

Mas

Tu pode ler mais sobre isso na documentação do React!

E se quiser conhecer mais outras formas de importar imagens no seu app React tem esse artigo aqui.

E uma dica: Olhando seu código, vi que você tem uma pasta assets dentro da pasta componentes. Todas essas imagens você terá que importar com o import para que elas apareçam. Se quiser evitar isso, coloque elas na pasta public.

No curso de React: Lidando com arquivos estáticos voce pode ver como fazer isso a partir da aula 04!

Abraços!

Comigo também estava acontecendo, mas por um erro bobo. Importei a pasta "assets/posts" dentro do src, e não no public como deveria.

Obrigada, resolveu!