reactjs - 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"
解决方案
这可能对你有帮助,
import {Dimensions} from "react-native"
尺寸将返回您选择的高度和宽度。window
screen
这将是,
const {height,width} = Dimensions.get("window")
或者
const {height,width} = Dimensions.get("screen")
推荐阅读
- javascript - React 17 无法获取节点的高度
- flutter - Flutter - 如何让方形小部件连续占用其最大可能空间?
- django - 如何使用 django-betterforms 从多个没有外键的表中检索和显示数据
- c++ - c++ 中的 std::condition_variable::wait
- google-mlkit - V2 条码扫描模型什么时候可以在非捆绑版本中用于条码扫描
- numpy - 逆矩阵乘法。我没有得到相同的答案
- woocommerce - 自定义分类未显示在 url
- javascript - 如何在没有 iframe 的情况下在 javascript 中嵌入网站?
- arrays - 如何在 minizinc 中表示元组数组?
- flutter - Dart:嵌套函数中的变量如何绑定到父级的局部变量?