У меня проблемы с загрузкой файла GLTF, который я скачал с sketchfab с помощью React JS. Когда я пытаюсь сделать это без использования React (с обычными index.html и index.js), он работает, но когда я помещаю код в свое приложение React, он выдает Unexpected token ‹в JSON в позиции 0 в JSON.parse ошибка. Вот мой код:
import * as THREE from "three";
import {GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader';
componentDidMount(){
var scene = new THREE.Scene();
scene.background = new THREE.Color(0xdddddd);
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
var width = 100;
var height = 100;
var intensity = 1.4;
var rectLight = new THREE.RectAreaLight( 0xffffff, intensity, width, height );
rectLight.position.set( 1, 1, 10 );
rectLight.lookAt( 1, 1, 3 );
scene.add( rectLight )
let renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize( window.innerWidth, window.innerHeight );
document.getElementsByClassName("three-canvas")[0].appendChild( renderer.domElement );
camera.position.z = 5;
var animate = function () {
requestAnimationFrame( animate );
renderer.render( scene, camera );
};
let loader = new GLTFLoader();
loader.load(
"../../public/js_models/apple_iphone_xs_max/scene.gltf",
( gltf ) => {
// called when the resource is loaded
console.log(gltf.scene)
},
( xhr ) => {
console.log(xhr);
// called while loading is progressing
// console.log("The xhr warning isL ",xhr.srcElement.responseText);
}
);
animate();
}
Я читал, что он отображает мой index.html, поэтому он выдает ошибку, но я не могу найти исправление, так как я знаю, что файл GLTF находится на правильном пути.
Если есть какие-то идеи, я был бы очень признателен. Спасибо!
ОБНОВЛЕНИЕ
Вкладка Network при визуализации компонента, который включает файл gltf
model/gltf+json
. а неtext/html
. Итак, проблема в том, как ваш бэкэнд обслуживает контент. К сожалению, я не знаю, почему это происходит с вашим приложением React. - person Mugen87   schedule 26.02.2020