【发布时间】:2020-12-11 07:10:46
【问题描述】:
我想让标题在我向下滚动时不可见,当我向上滚动时让它可见
const [showHeaderState, setShowHeaderState] = useState(true);
const prevScrollpos = useRef(window.pageYOffset);
const handleScroll = () => {
const currentScrollPos = window.pageYOffset;
prevScrollpos.current < currentScrollPos
? setShowHeaderState(false)
: setShowHeaderState(true);
prevScrollpos.current = currentScrollPos;
};
useEffect(() => {
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, []);
console.log(showHeaderState);
此代码有效
但是当我记录渲染状态时显示的是组件被渲染了两次
滚动向上记录true两次
滚动向下记录false两次
任何解决方案??
【问题讨论】:
标签: javascript reactjs rendering react-component