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 (将#修改为@)