useEffect与依赖数组触发多次,因为array.map



我正在创建一个简单的React应用程序,其中父组件根据输入范围滑块(使用array.map)呈现许多子组件。

我在使用子组件中的依赖数组的useEffect中执行某些操作(特别是,我使用react-three-fiber获得3D模型的边界框大小)。尽管我有依赖项数组,但我可以从控制台日志中看到每次移动滑块时都会执行useEffect。

我如何确保这个useEffect只执行一次?我正在考虑将模型的useRef传递给父类并在那里执行useEffect操作,但我很好奇是否有一种方法可以修改useEffect,使其只执行一次。

深入了解我的需求后,其中一个论点发生了变化。

不通过useCallback的函数总是会改变。重建的对象(在某种程度上,数组)也是新的(除非有记忆)。

我先检查了什么在变化。而不是使用useRef,找出数据中有什么变化。

但实际上,如果确实需要依赖项,我可以记住它(例如useMemo),而不是直接删除它。

相关内容

最新更新