我的目标是将这个类组件变成一个函数组件。
然而,我的功能组件实现的问题是,当我向上滚动时,标题会立即展开。如果页面位于绝对顶部,我只希望标题可见。
import React, { useState, useEffect } from "react";
import classnames from "classnames";
import "./header.styles.scss";
const Header = () => {
const [isHidden, setIsHidden] = useState(0);
const [prevScrollPos, setPrevScollPos] = useState(window.pageYOffset);
useEffect(() => {
function handleScrollChange() {
setIsHidden(prevScrollPos < window.pageYOffset);
setPrevScollPos(window.pageYOffset);
}
window.addEventListener("scroll", handleScrollChange);
return () => {
window.removeEventListener("scroll", handleScrollChange);
};
});
return (
<div
className={classnames("header", {
"header-hidden": isHidden,
})}
>
<div className="logo-container">A & A Solutions</div>
<div className="options">
<div className="option">Option 1</div>
<div className="option">Option 2</div>
<div className="option">Option 3</div>
</div>
</div>
);
};
export default Header;