微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Hooks,在重新渲染时将变量初始化

如何解决React Hooks,在重新渲染时将变量初始化

我正在尝试将非usestate变量的数据保留在重新渲染上

我有一个主要组成部分,其中有一个子组成部分。

子组件包含一个状态,并返回一个多维数据集。 它还包含 useFrame(),可在每个帧上执行操作。

我使用它根据 direction 变量(每3秒更改一次方向)对立方体进行旋转。 我还有另外一个可变的时间,在每个帧上都按 delta 递增。

问题是,当我单击多维数据集时,子组件被重新渲染(正常),但是我失去了时间方向值在此过程中,它们将重新初始化。

有没有一种方法可以不丢失数据?要不重新初始化它们? 我以为 useEffect 可以解决问题,但是我无法将其放在 useEffect useFrame (或 useFrame )中)。 也尝试过 useMemo ,但失败了,它没有保留更新后的值,但是我不确定使用它是否正确?是否可以根据他自己的更改进行更新?

制作了一个代码https://codesandbox.io/s/cube-rotation-sdfv8?file=/src/App.js:290-300

在此示例中,我可以使用setInterval,但这不是我的意思,这只是一个示例。 我想使用 useFrame 来移动对象,例如执行一些“先到那里,然后再回来”的操作。

使用state / setState也可以,但是我失去了巨大的性能,因为它每秒完成60次。 而且我可以有很多物体。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。