首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-three-fiber到@react-three/fiber。在原语中更改对象不能正常工作-

react-three-fiber到@react-three/fiber。在原语中更改对象不能正常工作-
EN

Stack Overflow用户
提问于 2021-08-16 08:24:41
回答 1查看 457关注 0票数 2

我刚刚在一个较旧的项目形式react-three-fiber和drei中更新了我的依赖项,将其改为@react-three/fiber和drei。一切都像预期的一样,整体性能要好得多。不幸的是,在primitive中对对象的更改不能正常工作。

这是我的ModelComponent:

代码语言:javascript
复制
function Model(props) {
 const model = useLoader(GLTFLoader, props.src);

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

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

在更新我的依赖关系之前,一切都很好。我认为这一定是一些缓存问题,但我不知道到底是什么问题。

我希望你能帮助我。

在这方面,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-09-27 07:15:41

您可以通过为React提供一个key来提示React需要完全重新创建该组件。在本例中,您的模型的URL将成为一个很好的键,因为当URL更改时,您需要一个新的原语:

代码语言:javascript
复制
<primitive key={props.src} object={model.scene} />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68799567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档