Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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检查元素是否存在_Javascript_Reactjs_Next.js - Fatal编程技术网

Javascript 使用interSectionObserver检查元素是否存在

Javascript 使用interSectionObserver检查元素是否存在,javascript,reactjs,next.js,Javascript,Reactjs,Next.js,我正在尝试使用IntersectionObserver检查ID为cartTotal的div是否存在 我有一个弹出的模态,因此在模态安装之前div不存在 由于以下原因,我收到一个错误:未能在“IntersectionObserver”上执行“observe”:参数1不是“Element”类型。 如何通过检查元素是否存在来避免此错误 useEffect(() => { let message = document.querySelector('#__next'); // I

我正在尝试使用IntersectionObserver检查ID为
cartTotal
的div是否存在

我有一个弹出的模态,因此在模态安装之前div不存在

由于以下原因,我收到一个错误:
未能在“IntersectionObserver”上执行“observe”:参数1不是“Element”类型。

如何通过检查元素是否存在来避免此错误

 useEffect(() => {    
    let message = document.querySelector('#__next');

// INTERSECTION OBSERVER STUFF
const io = new IntersectionObserver(entries => {
  entries.forEach(entry => { console.log(entry)
  })
}, {
    threshold: [0]
});

// ELEMENTS TO OBSERVE
const blk1 = document.querySelector('#cartTotal') ? document.querySelector('#cartTotal') : ''

// START OBSERVING ELEMENTS
io.observe(blk1);

您是否尝试过将threshold设置为1.0,并将#cartTotal元素添加到同一个options对象中,而不是在实例化IntersectionObserver之后?如果我理解正确,此模式的id为
cartTotal
,您希望在它弹出时进行“观察”,对吗?在模式弹出之前,没有id为cartTotal的元素,对吧?对@ParamaKar@HeraldSmit我尝试了这一点,但我得到了相同的错误,因为在模态加载div之前,div最初不存在。我认为更合适的选择是使用突变观察者API,它检查DOM树中所做的更改: