【发布时间】:2019-09-25 16:05:08
【问题描述】:
我正在尝试使我的应用程序的设计适应平板电脑,检测应用程序是否在平板电脑上运行的一种方法是使用 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 上运行。
感谢任何帮助。
【问题讨论】:
标签: react-native react-native-device-info