我试图使用useObserver钩子来进行无休止的分页,但是当我传递第一个参数,即加载器时,我得到一个错误"Failed to execute 'observe' on 'IntersectionObserver': parameter 1 is not of type 'Element'."
,因为我有条件地呈现这个元素.
以下是我的代码:
//At first I fetch data from external API
const lastElement = useRef();
useObserver(lastElement, callback, dependecies)
return (
<section>
{here is mapping of data}
{!loading && !isSearched && limit <= data.length && (
<div ref={lastElement}><Loader/></div>
)}
</section>
useObserver.js个
export default function useObserver(ref, callback, dependecies) {
const observer = useRef();
useEffect(() => {
function observerCallback(entries) {
if(entries[0].isIntersecting) {
callback()
}
}
observer.current = new IntersectionObserver(observerCallback);
observer.current.observe(ref?.current);
return () => {
observer.current.disconnect();
}
}, [dependecies])
}
在页面挂载后如何调用这个钩子,有什么方法吗?