【问题标题】:How to re-assign a ref hook如何重新分配参考挂钩
【发布时间】:2019-11-20 19:28:28
【问题描述】:

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

编辑

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

【问题讨论】:

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

标签: javascript html reactjs dom react-hooks


【解决方案1】:

我发现解决此问题的最佳方法是翻转逻辑。将 ref 分配给观察者。这样 ref 不会改变,您可以使用 Intersection 观察者的功能(连接和断开连接)来指向不同的 DOM 元素。

更多阅读:https://www.darrencoxall.com/react/intersection-observer-component/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    相关资源
    最近更新 更多