Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

242
Visualizações
THREE.js GLTFLoader not rendering with react

am quite new to both react and three.js, im trying to render a .gltf file using the method const Loader = new GLTFLoader() however when the website is rendered and i view it in browser i see the error message, An error happened SyntaxError: Unexpected token < in JSON at position 0, if anyone would know what direction to point me in that would be great.

here's the code

rende.js:

import * as THREE from "three";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
export default class Rende extends Component {
  componentDidMount() {
    var scene = new THREE.Scene();
    var camera = new THREE.PerspectiveCamera(
      75,
      window.innerWidth / window.innerHeight,
      0.1,
      1000
    );
    var renderer = new THREE.WebGLRenderer();
    renderer.setClearColor(0x424242, 1);
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.getElementById("scene").appendChild(renderer.domElement);

    const loader = new GLTFLoader();
    loader.load(
      "untitled.gltf",
      (gltf) => {
        scene.add(gltf.scene);
      },
      (xhr) => {
        console.log(`${(xhr.loaded / xhr.total) * 100}% loaded`);
      },
      (error) => {
        console.error("An error happened", error);
      }
    );
 
  }
  render() {
    return <div id="scene" className="potato"></div>;
  }
}

and the coresponding component page

home.jsx:

export default function Home() {
  return (
    <Fragment>
      {" "}
      <div key={1} className="class">
        tagline
      </div>
      <Rende />
    </Fragment>
  );
}

if anyone can help that would be much apreciated. Thank you

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Maybe the path of your model is wrong?

I think you should fix it with a relative path, or the right absolute one.

It happened to me firsthand when I worked with threejs at the beginning and was writing the wrong path for my .gltf


Replication of the error and reasons

I made a fork of a "Three.js import GLTF" sandbox on codesandbox, where I replaced the path with a random, wrong one.

If you open the console (in the sandbox fork), you will see your same error.

This is because the fetch still has the status 200 but with HTML instead of your model's JSON,

due to the wrong path and the behavior of the server of a single page application, which, generally, returns the index.html, unless it is a path belonging to one of the assets, by default with reactjs and other libraries/frameworks.

From the sandbox enter image description here

Since the path is wrong, the server returns your html instead of your model, so the JSON parser throws your same error, because actually, the first char recived is <.

...as you can see in this screen from the browser dev-tools > Network tab, while running the sandbox

enter image description here


Conclusion

Try to check out the network devtools while running your website to check if your .gltf fetch response is HTML (intead of your model JSON). If so, your model path is wrong.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda