Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 用intersectionObserver API检测动态第n个div_Javascript_Reactjs_Intersection Observer - Fatal编程技术网

Javascript 用intersectionObserver API检测动态第n个div

Javascript 用intersectionObserver API检测动态第n个div,javascript,reactjs,intersection-observer,Javascript,Reactjs,Intersection Observer,我有一个带有React.js 它实际上是无限的,所以我无法测量它有多少 <div className="InfiniteScroll"> <div ref={observer} className="item">item</div> <div ref={observer2} className="item">item</div> {/* Actually I am

我有一个带有
React.js

它实际上是无限的,所以我无法测量它有多少

<div className="InfiniteScroll">
  <div ref={observer} className="item">item</div>
  <div ref={observer2} className="item">item</div>
  {/* Actually I am using map() */}
  {...}
</div>
当我想知道当前可见的div时,我怎么能用这个来知道呢

在每个
div
上添加
IntersectionObserver
看起来不合理


如果我想用1000次div随机div调用某个函数,我该如何实现它?

您可以用代码设置任何div

new IntersectionObserver(function(div) {
    div.isIntersecting && do_something();
}).observe(div);

您可以使用代码设置任何div

new IntersectionObserver(function(div) {
    div.isIntersecting && do_something();
}).observe(div);

我建议您在最后一个div上附加一个ref。因此,当最后一个div相交时,您可以在那里调用您的函数

将ref附加到最后一个div

{list.map((item, index) => {
    if (item.length === index + 1) {
      return <div ref={lastItemElementRef} key={item}>{item}</div>
    } else {
      return <div key={item}>{item}</div>
    }
})}

我建议您在最后一个div上附加一个ref。因此,当最后一个div相交时,您可以在那里调用您的函数

将ref附加到最后一个div

{list.map((item, index) => {
    if (item.length === index + 1) {
      return <div ref={lastItemElementRef} key={item}>{item}</div>
    } else {
      return <div key={item}>{item}</div>
    }
})}

您是否使用映射来显示数据?@RamyRagab是的,我正在使用
map()
来显示数组。您正在使用映射来显示数据吗?@RamyRagab是的,我正在使用
map()
来显示数组。如何访问1001st div?ReactDOM.render(元素,容器[,回调]);能否在回调中设置IntersectionObserver?如何访问1001st div?ReactDOM.render(元素,容器[,回调]);你能在回调中设置IntersectionObserver吗?我已经在
IntersectionObserver
中使用了第一个div和最后一个div。但是我正在努力处理
nth
div。当我检测到
412th
div时,我想调用一些函数。这个数字可能是动态的。我已经将第一个div和最后一个div用于
IntersectionObserver
。但是我正在努力处理
nth
div。当我检测到
412th
div时,我想调用一些函数。这个数字可能是动态的。