微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改语言环境导致 onScroll 导航重置

如何解决更改语言环境导致 onScroll 导航重置

我有一个在滚动时改变其背景颜色的标题。但是如果我在页面中间更改语言环境,它会将我的背景颜色重置为认值。如何防止它被重新渲染?

我的应用是用 NextJs 构建的,并使用 next-i18next 进行国际化路由

const TheHeader = () => {
  const [isScroll,setIsScroll] = useState(false);
  const router = useRouter();

  useEffect(() => {
    function handleScroll() {
      setIsScroll(window.scrollY > 50 ? true : false);
    }
    window.addEventListener("scroll",handleScroll);
    return () => {
      window.removeEventListener("scroll",handleScroll);
    };
  },[]);

  return (
    <header className="relative z-[1]">
      <nav
        className={isScroll ? "bg-gray-900 shadow-md" : ""}
      >
        <Link
          href="/"
          locale={router.locale === "en" ? "th" : "en"}
          scroll={false}
        >
            <button>
              {router.locale} {router.locale === "en" ? "??" : "??"}
            </button>
        </Link>
      </nav>
    </header>
  );
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。