2016-07-05 18 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