我正在尝试使我的应用程序的设计适应平板电脑,检测应用程序是否在平板电脑上运行的一种方法是使用 DeviceInfo 模块,特别是 isTablet() 方法。如何使用此方法有条件地将样式应用于元素?
这是我目前正在尝试做的事情:
import { checkIfDeviceIsTablet } from './helper-functions';
<View style={[styles.wrapper, checkIfDeviceIsTablet() === true ? styles.wrapperTablet : {}]}>
{contents}
</View>
checkIfDeviceIsTablet() 函数如下:
import DeviceInfo from 'react-native-device-info';
function checkIfDeviceIsTablet() {
DeviceInfo.isTablet().then(isTablet => {
return isTablet;
});
}
问题是当组件加载时 checkIfDeviceIsTablet() 方法返回一个承诺而不是预期的真/假值,因此当应用程序在平板电脑上运行时条件样式不会应用。我尝试使用 try/catch 将函数转换为 async/await 格式,但结果是一样的。
我会使用 React Native 自己的 Platform.isPad 函数,但该应用程序也必须在 Android 上运行。
任何帮助表示赞赏。