【发布时间】:2021-06-29 21:37:45
【问题描述】:
我使用 useState 来获取窗口高度,但它给出了一个运行时错误,提示窗口未定义。你知道为什么
代码如下:
let [winHeight,setWinHeight] = useState(window.innerHeight)
useEffect(() => {
const list = []
for (var i=0;i<datas.length;i++){
const t = datas[i].title
const res = handleResize(i + 2)
list.push(<li ref={resl[i + 1]} style={{top: "20px",left: res + "px"}}><Anchor href={datas[i].link || `/${t.replace(/ /g, "_")}`}><a onClick={() => closeNav()} onMouseOver={() => setHovering(i)}>{t}</a></Anchor></li>)
}
setWinHeight(window.innerHeight)
setLinks(list)
}, [winHeight])
【问题讨论】:
-
尝试在依赖数组中传递它
-
我已经改变了问题,抱歉
-
你想看看这个其他答案,它应该对你有帮助:stackoverflow.com/a/19014495/5460827
-
我建议检查一下:usehooks.com/useWindowSize
标签: javascript reactjs typescript react-native use-state