【发布时间】:2021-03-17 00:04:56
【问题描述】:
React 抱怨下面的代码,说它 useState 和 useEffect 被有条件地调用。没有打字稿,代码工作正常:
import React, { useState, useEffect } from "react";
const useScrollPosition = () => {
if (typeof window === "undefined") return 500;
// Store the state
const [scrollPos, setScrollPos] = useState(window.pageYOffset);
// On Scroll
const onScroll = () => {
setScrollPos(window.pageYOffset);
};
// Add and remove the window listener
useEffect(() => {
window.addEventListener("scroll", onScroll);
return () => {
window.removeEventListener("scroll", onScroll);
};
});
};
export default useScrollPosition;
【问题讨论】:
标签: reactjs typescript use-effect use-state