我正在使用react native开发一个应用程序,当我尝试console.log(useDeviceOrientation());
时。纵向和横向的输出(true/false)没有改变。有人能帮忙吗?
使用的库为:@React-原生-社区/钩子
我使用的API:使用设备方向
我尝试做的是:
1.卸载存储库
1.重新安装相同的存储库
1.将库的依赖项添加到package.json
1.发生相同的问题。更改方向时没有更改
代码:
// import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { Dimensions, StyleSheet, SafeAreaView, Alert, Button, Platform, StatusBar, View } from 'react-native';
import { useDimensions, useDeviceOrientation } from '@react-native-community/hooks'
export default function App() {
console.log(useDeviceOrientation());
const { landscape } = useDeviceOrientation();
return (
<SafeAreaView style={styles.container}>
<View style={{
backgroundColor: "dodgerblue",
width: "100%",
height: landscape ? "100%" : "30%",
}}
></View>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
paddingTop: Platform.OS === "android" ? StatusBar.currentHeight : 0,
// justifyContent: "center",
// alignItems: "center",
},
});
4条答案
按热度按时间c8ib6hqw1#
这不需要第三方库,你可以使用这种方法,首先创建一个名为useOrientarion的功能组件,
然后在你的组件中,
deyfvvtc2#
对我很有效。
React原生群落
sqxo8psd3#
我认为这是他们正在解决的一个已知问题:https://github.com/react-native-community/hooks/issues/210. @ReadRise答案作为一个解决方案效果很好!
cig3rfwq4#
我也有同样的问题停止应用程序并重新构建就足以修复它。