首页 > 解决方案 > react-three-fiber 到 @react-three/fiber。更改原语中的对象无法正常工作-

问题描述

我刚刚将我在旧项目中的依赖项从 react-three-fiber 和 drei 更新为 @react-three/fiber 和 drei。一切都按预期工作,整体性能要好得多。不幸的是,我的原始对象的更改无法正常工作。

这是我的模型组件:

function Model(props) {
 const model = useLoader(GLTFLoader, props.src);

 return (
  <mesh position={props.position} rotation={props.rotation}>
   <primitive
    object={model.scene}
   />
  </mesh>
 );
}

我在两个源之间切换 props.src,但是两个模型同时加载,当我切换回来时,第二个模型将不再显示。

在更新我的依赖项之前,一切正常。我认为它必须是一些缓存问题,但我无法弄清楚究竟是什么问题。

我希望你能帮助我。

对此表示感谢。

标签: three.jsreact-three-fiber

解决方案


你可以通过给 React 一个key. 在这种情况下,您的模型的 URL 将成为一个很好的键,因为当 URL 更改时您需要一个新的原语:

<primitive key={props.src} object={model.scene} />

推荐阅读