React Native 中 Platform.OS 判断平台不生效是怎么回事?
我在写一个组件时想根据 iOS 和 Android 显示不同的样式,用了 Platform.OS === 'ios' 来判断,但无论在哪个模拟器上跑,结果都一样。是不是我用法错了?
代码大概是这样:
import { Platform, StyleSheet } from 'react-native';
const styles = StyleSheet.create({
container: {
padding: Platform.OS === 'ios' ? 20 : 10,
backgroundColor: '#fff',
},
});
可明明在 Android 模拟器里跑,padding 还是 20,根本没变。难道 Platform.OS 返回的不是字符串?还是我漏了什么配置?
我的做法是先清理一下缓存,试试运行命令
react-native start --reset-cache然后再重新 build 项目。要是还不行的话,可以换个写法验证下:
这个 Platform.select 写法更明确一些,虽然和原来的写法逻辑上是一样的。我之前也遇到过类似情况,换了写法后就正常了,也不知道是不是心理作用哈哈。
顺便说一句,记得检查下你的开发环境是不是最新的版本,有时候这些问题在新版本里已经修复了。最近忙项目的时候也被这种小问题折腾得够呛。