状态确实在滚动上设置,但从事件侦听器记录,它似乎停留在初始值。
我想这与scrolling定义副作用时设置有关,但是我怎么能从滚动中触发状态更改呢?我假设的任何窗口事件也是如此。
这是一个代码和框示例:https ://codesandbox.io/s/react-test-zft3e
const [scrolling, setScrolling] = useState(false);
useEffect(() => {
window.addEventListener("scroll", () => {
console.log(scrolling);
if (scrolling === false) setScrolling(true);
});
}, []);
return (
<>
scrolling: {scrolling}
</>
);
Run Code Online (Sandbox Code Playgroud)