如何在 ReactJS 中获取视口高度?在我使用的普通 JavaScript 中
window.innerHeight()
但是使用 ReactJS,我不确定如何获取这些信息。我的理解是
ReactDOM.findDomNode()
仅适用于创建的组件。但是,对于 document
或 body
元素,情况并非如此,这可能会给我窗口的高度。
原文由 Jabran Saeed 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 ReactJS 中获取视口高度?在我使用的普通 JavaScript 中
window.innerHeight()
但是使用 ReactJS,我不确定如何获取这些信息。我的理解是
ReactDOM.findDomNode()
仅适用于创建的组件。但是,对于 document
或 body
元素,情况并非如此,这可能会给我窗口的高度。
原文由 Jabran Saeed 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用钩子(反应 16.8.0+
)
创建一个 useWindowDimensions
挂钩。
import { useState, useEffect } from 'react';
function getWindowDimensions() {
const { innerWidth: width, innerHeight: height } = window;
return {
width,
height
};
}
export default function useWindowDimensions() {
const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());
useEffect(() => {
function handleResize() {
setWindowDimensions(getWindowDimensions());
}
window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);
}, []);
return windowDimensions;
}
之后你就可以像这样在你的组件中使用它
const Component = () => {
const { height, width } = useWindowDimensions();
return (
<div>
width: {width} ~ height: {height}
</div>
);
}
原答案
在 React 中也是一样,你可以使用 window.innerHeight
来获取当前视口的高度。
正如你 在这里 看到的
原文由 QoP 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决