修复 nextjs 中的 "call stack full" 错误

Fixing a "call stack full" error in nextjs

我正在尝试在 nextjs 中编写代码,使我的广告牌不断滚动以显示一些信息。 Nextjs 调试器向我显示 'call stack full' 错误。我该如何解决这个问题?

    const billboardContainer = useRef();

    useEffect(()=>{

        function billboardContainerScroll(n=0){
            billboardContainer.current.scrollTo({top:0,left:(n*window.innerWidth),behaviour:'smooth'});
            n++;
            if(n<7 & n>=0) {
                setTimeout(billboardContainerScroll(n), 2000);
            } else {
                n=0;
                setTimeout(billboardContainerScroll(n), 2000);
            }
        }

        billboardContainerScroll();
    });

问题是你在没有退出条件的情况下递归调用你的函数,这在理论上会导致无限调用。但是调用堆栈上只能有这么多函数。

此外,您的 if 语句中存在语法错误。您在 AND 运算符中缺少 &