反应三。使用循环时,不显示模型

问题描述 投票:0回答:1

我有一个描述应该渲染的模型的对象列表。如果您尝试通过循环运行它们,它们不会显示。

function Model({model, position}) {
    const result = useLoader(GLTFLoader, './models/car/top/topFront.glb')
    return <primitive 
        object={result.scene} 
        position={[1,1,1]}
        onPointerOver={()=>changeToSelect(result)}
        onPointerOut={()=>chageToUnselect(result)}
        material={
          new THREE.MeshPhysicalMaterial({ color: 'black', flatShading: true })
        }
    />
  }
{cars.forEach(car=>{
          <Model
          model={car['path']}
          position={car['position']}
         />
        })}

这里是对象:{name:'中顶部',path:'./models/car/top/topMiddle.glb',position:'1,3,1'}

尝试输出标准元素时它也不起作用:

{cars.forEach(()=>{
            <mesh>
              <boxGeometry />
              <meshStandardMaterial />
            </mesh>
         })}
reactjs three.js 3d react-three-fiber react-three-drei
1个回答
0
投票

我将 forEach 转换为映射并添加“return”

{cars.map((car, i)=>{
      return <Model
      key={i}
      model={car['path']}
      position={car['position']}
     />
    })}
© www.soinside.com 2019 - 2024. All rights reserved.