2016-07-05 16 views
1

我正在使用react-three-renderer作为项目。我正在创建用于显示的网格。react-three-renderer多面体几何错误

从反应-三渲染维基基于断this example,我做了这个:

var React = require('react'); 
var ReactDOM = require('react-dom'); 
var THREE = require('three'); 
var React3 = require('react-three-renderer'); 

class Simple extends React.Component { 
    constructor(props, context) { 
    super(props, context); 

    this.cameraPosition = new THREE.Vector3(0, 0, 5); 
    } 

    render() { 
    const width = window.innerWidth; 
    const height = window.innerHeight; 

    return (<React3 
     mainCamera="camera" 
     width={width} 
     height={height} 
    > 
     <scene> 
     <perspectiveCamera 
      name="camera" 
      fov={75} 
      aspect={width/height} 
      near={0.1} 
      far={1000} 

      position={this.cameraPosition} 
     /> 
     <mesh key={0}> 
      <polyhedronGeometry 
       vertices={[0,1.5,0,36.188,0,0,0,0,0,36.188,1.5,0,0,0,3.5,36.188,0,3.5,0,1.5,3.5,36.188,1.5,3.5]} 
       indices={[0,1,2,3,1,0,4,1,5,2,1,4,6,2,4,0,2,6,6,3,0,7,3,6,3,5,1,7,5,3,7,4,5,6,4,7]} 
       detail={2} 
       radius={18.178430515311273} 
       name="B1" /> 
      <meshBasicMaterial color={0x00ff00} /> 
     </mesh> 
     </scene> 
    </React3>); 
    } 
} 

ReactDOM.render(<Simple/>, document.getElementById('viewport')); 

我的例子逐字工作,但是当我改变了<boxGeometry/><polyhedronGeometry>(见documentation) ,我得到这个错误:

threeObject.userData._triggerRemount is not a function.

这是什么原因造成的,我该怎么办才能修复它?

回答

2

这是一个错误,它将被修复,see the issue on Github。技术细节:当你修改某些类型的道具时,例如多面体几何体,它将触发组件的重新装载以重新创建几何体对象,并让现在有三维几何体。在这种情况下,图书馆开发人员(我)忘记处理初始构建对象时发生的边缘情况。

+0

应该在[2.1.4]中修复(https://github.com/toxicFork/react-three-renderer/releases/new?tag=v2.1.4) – toxicFork