首页 > 解决方案 > useWindowDimensions 返回错误的高度

问题描述

我在 react-native 中的 useWindowDimensions 钩子返回一个太小的高度时遇到问题。它给我的高度是 36 像素,而我知道我用来测试的设备上的实际屏幕高度是 568。

当我将设备旋转到横向时,高度会自行校正到适当的高度。

我做了一个非常简单的 expo 项目,当你按下按钮时记录屏幕高度。如果您有博览会,应该非常快速地克隆和运行:https ://github.com/PeterHSteele/window-dimensions-test 。有时(可能大部分时间),日志是正确的,但在重复重新加载时,它最终总是显示不正确的高度。据我所知,它是否正确似乎完全是随机的。

当我使用 react native 社区的 useDimensions 或 Dimensions API 时,我遇到了同样的问题。虽然,我的项目的旧版本似乎没有问题,所以可能是版本兼容性问题:

该演示项目中似乎不起作用的版本:

"expo": "~39.0.2"
"react": "16.13.1",
"react-dom": "16.13.1",
"react-native": ".63.3"

我的应用程序的旧版本中确实有效的版本:

"expo": "~36.0.0",
"react": "~16.9.0",
"react-dom": "~16.9.0",
"react-native": ".63.3"

标签: reactjsreact-nativereact-hooks

解决方案


这可能对你有帮助, import {Dimensions} from "react-native"

尺寸将返回您选择的高度宽度windowscreen

这将是,

const {height,width} = Dimensions.get("window")

或者

const {height,width} = Dimensions.get("screen")


推荐阅读