Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重新分配ref钩子_Javascript_Html_Reactjs_Dom_React Hooks - Fatal编程技术网

Javascript 如何重新分配ref钩子

Javascript 如何重新分配ref钩子,javascript,html,reactjs,dom,react-hooks,Javascript,Html,Reactjs,Dom,React Hooks,我正在使用IntersectionObserverapi实现一个无限滚动特性。我使用useRef钩子来定位某些元素。 let ref=useRef(),我需要在加载新内容时重新分配ref以指向新元素。现在重新分配ref给2个或更多元素相同的ref。如何安全地将ref更改为新元素并删除旧元素 编辑 重新分配 items[index].ref=ref我发现解决这个问题的最好办法就是改变逻辑。将ref分配给观察者。这样ref就不会改变,您可以使用交叉点观察者的功能(连接和断开连接)指向不同的DOM元素

我正在使用
IntersectionObserver
api实现一个无限滚动特性。我使用useRef钩子来定位某些元素。
let ref=useRef()
,我需要在加载新内容时重新分配ref以指向新元素。现在重新分配ref给2个或更多元素相同的ref。如何安全地将ref更改为新元素并删除旧元素

编辑

重新分配
items[index].ref=ref

我发现解决这个问题的最好办法就是改变逻辑。将ref分配给观察者。这样ref就不会改变,您可以使用交叉点观察者的功能(连接和断开连接)指向不同的DOM元素


更多阅读:

您能展示一下如何分配ref的代码和/或片段吗?您不能。假设两个组件都将保持安装状态。使用2
refs
并在所选元素之间切换。“需要重新分配”是您用于IntersectionObserver的元素的重新分配吗?如果是这样的话,为什么不保持相同的元素具有相同的ref,并在加载更多内容时继续移动到内容的底部?@PatrickEvans是的,重新分配是为了改变观察者所看到的内容。如果没有内容,我需要调用api或触发一些错误处理。