【发布时间】:2020-08-17 02:29:56
【问题描述】:
我正在使用 React JS 库来跟踪用户滚动高度并根据收到的数据应用功能。
它在 Codesandbox.io 上运行良好,但是一旦我在 npm localhost 上运行它,它就无法存在,尽管我使用的是完全相同的代码。
这是我试图在 localhost 上应用但总是返回 0 的函数:
//Scroll event listener to change menu background color
const ScrollingElement = () => {
const [scrollY, setScrollY] = useState(0);
function logit() {
setScrollY(window.pageYOffset);
}
useEffect(() => {
function watchScroll() {
window.addEventListener("scroll", logit);
}
watchScroll();
// Remove listener (like componentWillUnmount)
return () => {
window.removeEventListener("scroll", logit);
};
}, []);
console.log(scrollY);
return scrollY;
}
我尝试调试 scrollY 变量,在 localhost 上我收到的值总是 0,无论如何。
我猜这是某种定义错误,codeandbox.io 有,而我没有。
在App函数上也试过如下调试,同样返回0:
function App() {
console.log(ScrollingElement());
return (
<div>
<Menu scrollHeight={ScrollingElement()}></Menu>
<Home></Home>
</div>
);
}
我如何在 localhost 上运行我的代码,该代码可以在代码沙盒中运行?
【问题讨论】:
-
@evolutionxbox 但如何正确返回?我真的看不出如何做到这一点的语法。
-
对不起,我刚刚在您的 codepen 中尝试过,代码按预期工作。请确保问题中的代码是minimal reproducible example,以便我们帮助您调试问题。
-
@evolutionxbox 尝试在本地主机上运行它,它不起作用。我将分享我所做的一些调试。
标签: javascript reactjs jsx