useWindowDimensions 返回错误的高度

Har*_*son 6 reactjs react-native react-hooks

我在 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"
Run Code Online (Sandbox Code Playgroud)

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

"expo": "~36.0.0",
"react": "~16.9.0",
"react-dom": "~16.9.0",
"react-native": ".63.3"
Run Code Online (Sandbox Code Playgroud)

小智 1

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

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

这将是,

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

或者

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

  • OP 提到:_“当我使用 React Native 社区的 useDimensions 或 Dimensions API 时,我遇到了同样的问题。”_ (2认同)