three.js - 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,但是两个模型同时加载,当我切换回来时,第二个模型将不再显示。
在更新我的依赖项之前,一切正常。我认为它必须是一些缓存问题,但我无法弄清楚究竟是什么问题。
我希望你能帮助我。
对此表示感谢。
解决方案
你可以通过给 React 一个key
. 在这种情况下,您的模型的 URL 将成为一个很好的键,因为当 URL 更改时您需要一个新的原语:
<primitive key={props.src} object={model.scene} />
推荐阅读
- c# - Unity:使用迭代器内部的 random.range 结果(掷骰子)
- java - 使用泛型从动态数组创建静态数组
- java - setData() 在 MPAndroid 图表中返回 0
- jquery - 猫头鹰轮播 - 类型错误:无法读取未定义的属性“fn”
- python-3.x - 对numpy数组操作感到困惑
- c - 可以访问继承结构的结构
- javascript - Bundler 错误 无效的配置对象。Webpack 已使用与 API 模式不匹配的配置对象进行初始化
- javascript - 如何为每行reactjs设置datepicker,timepicker的值
- c++ - CMake 找不到 MSBuild.exe
- laravel - Laravel+vue 在 Nginx 中运行时出现空白页