Javascript Eslint-';观察员';在定义之前是否已使用?

Javascript Eslint-';观察员';在定义之前是否已使用?,javascript,babeljs,Javascript,Babeljs,我试图解决我的订单问题,我得到一个Eslint错误,在定义之前使用了“observer”。但是当我在onInterSection函数上面替换观测者时,我得到的onInterSection函数在它被定义之前就被使用了 (() => { let images = [...document.querySelectorAll('[data-src]')]; const settings = { rootMargin: '50px 0px', thr

我试图解决我的订单问题,我得到一个Eslint错误,在定义之前使用了“observer”。但是当我在onInterSection函数上面替换观测者时,我得到的onInterSection函数在它被定义之前就被使用了

(() => {
    let images = [...document.querySelectorAll('[data-src]')];

    const settings = {
        rootMargin: '50px 0px',
        threshold: 0.01
    };

    const onIntersection = (imageEntites) => {
        imageEntites.forEach((image) => {
            if (image.isIntersecting) {
                observer.unobserve(image.target);
                image.target.src = image.target.dataset.src;
                image.target.onload = () =>
                    image.target.classList.add('loaded');
            }
        });
    };

    let observer = new IntersectionObserver(onIntersection, settings);

    images.forEach((image) => observer.observe(image));
})();

你可以试着这样写:


    let observer = new IntersectionObserver((imageEntites) => {
        imageEntites.forEach((image) => {
            if (image.isIntersecting) {
                observer.unobserve(image.target);
                image.target.src = image.target.dataset.src;
                image.target.onload = () =>
                    image.target.classList.add('loaded');
            }
        });
    };, settings);

谢谢有没有可能改变加载器图像?我不知道你的加载器图像是什么。顺便说一句,您也可以直接在图像上使用
load=“lazy”
来实现图像的延迟加载。是的,但我也需要对Safari的支持,这在那里还不受支持。然后您需要您的解决方案,这是正确的。