useWindowDimensions() returns swapped height and width in iOS
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C++
- Star
- 127k
- Fork
- 25.3k
- Merge trung bình
- 1 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 4
Mô tả
Description
When tested with iPad simulator, the useWindowDimensions(...) hook returns incorrect width and height.
React Native version:
Run react-native info in your terminal and copy the results here.
info Fetching system and libraries information...
System:
OS: macOS 10.15.5
CPU: (4) x64 Intel(R) Core(TM) i5-4278U CPU @ 2.60GHz
Memory: 24.79 MB / 8.00 GB
Shell: 5.7.1 - /bin/zsh
Binaries:
Node: 12.18.0 - /var/folders/k_/twn4fnrn6g56kn0xjlkp3zx00000gn/T/yarn--1594122179123-0.9086048405049534/node
Yarn: 1.22.4 - /var/folders/k_/twn4fnrn6g56kn0xjlkp3zx00000gn/T/yarn--1594122179123-0.9086048405049534/yarn
npm: 6.14.5 - /usr/local/bin/npm
Watchman: Not Found
Managers:
CocoaPods: 1.9.3 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: iOS 13.5, DriverKit 19.0, macOS 10.15, tvOS 13.4, watchOS 6.2
Android SDK:
API Levels: 23, 26, 28, 29
Build Tools: 27.0.3, 28.0.3, 29.0.2, 30.0.0
System Images: android-29 | Google Play Intel x86 Atom
Android NDK: Not Found
IDEs:
Android Studio: 4.0 AI-193.6911.18.40.6514223
Xcode: 11.5/11E608c - /usr/bin/xcodebuild
Languages:
Java: 1.8.0_242-release - /usr/bin/javac
Python: 2.7.16 - /usr/bin/python
npmPackages:
@react-native-community/cli: Not Found
react: 16.11.0 => 16.11.0
react-native: ^0.62.2 => 0.62.2
npmGlobalPackages:
*react-native*: Not Found
✨ Done in 11.68s.
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.
- Use
react-native initto create a new project. - Edit
App.jswith the following codeimport React from "react"; import { Text, View, useWindowDimensions } from "react-native"; export const App = () => { const { width, height } = useWindowDimensions(); return ( <View style={{ width: "100%", height: "100%", alignItems: "center", justifyContent: "center", }} > <Text>{width > height ? "landscape" : "portrait"}</Text> <Text>{`width: ${width}, height: ${height}`}</Text> </View> ); };
Expected Results
- At the first time I rotate the simulator to landscape, it should display
"landscape"instead of nothing happens. - At the second time the simulator rotates back to portrait position, it should render
"portrait"on the screen. - At the second time I rotate from portrait to landscape, it should display
"landscape"instead of"portrait".
Snack, code example, screenshot, or link to a repository:
It is not easy to show device orientation features in snack, I'll attach screen recordings below.

You may download the original video to pause for the rendered text.
Screen Recording 2020-07-07 at 7.39.07 PM.zip
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với việc tái hiện trong App.js bằng cách sử dụng useWindowDimensions() và xác minh hành vi trên trình mô phỏng iPad khi xoay qua lại giữa chế độ dọc và ngang. Xác nhận rằng hướng hiển thị và các giá trị chiều rộng/chiều cao được cập nhật chính xác sau mỗi lần xoay; issue không nêu tên tệp triển khai React Native hoặc test cần sửa đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, react-native
- Lĩnh vực
- mobile
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100