Javascript Threejs:如何将加载程序导入React应用程序?

Javascript Threejs:如何将加载程序导入React应用程序?,javascript,reactjs,web,import,three.js,Javascript,Reactjs,Web,Import,Three.js,您好,感谢您阅读此问题。您应该尝试使用全局对象,如下所示: 创建一个新的three.js文件 import * as THREE from 'three'; window.THREE = THREE; // THREE.NRRDLoader expects THREE to be a global object require('three/examples/js/loaders/NRRDLoader'); export default window.THREE; 然后在组件中,从该

您好,感谢您阅读此问题。您应该尝试使用全局对象,如下所示:

创建一个新的three.js文件

import * as THREE from 'three';


window.THREE = THREE; // THREE.NRRDLoader expects THREE to be a global object
require('three/examples/js/loaders/NRRDLoader');


export default window.THREE;

然后在组件中,从该文件导入三个:

import React from 'react';
import ReactDOM from 'react-dom';
import THREE from "./three"; // note the import here

class Scene extends React.Component {

}
然后,您应该能够像现在一样使用THREE.NRRDLoader:

var loader = new THREE.NRRDLoader();

您可以在webpack.config中添加合适的加载程序

 /*
    glb files for 3D models
    ------
    * Copies fonts found within the `src` tree to the `dist` folder
    * Keeps the original file name to the path
  */
  {
    test: /\.(glb|gltf)$/,
    use:
    [
        {
            loader: 'file-loader',
            options:
            {
                outputPath: 'assets/models/'
            }
        }
    ]
},
如果您使用的是React钩子,下面是一个从three.js加载的3D模型和React.js的示例


我和assimpJSONLoader面临同样的问题。你找到解决办法了吗?我也有同样的问题。有人发现了吗?