React native React本机平台操作系统突然无法工作

React native React本机平台操作系统突然无法工作,react-native,React Native,我正在使用Platform.OS检查ios和android。它工作正常,但突然它返回0而不是“ios”或“android”。经过一些RND后,我发现当应用程序第一次加载时,它会返回我“android”,但当我切换屏幕并检查Platform.OS时,它会返回我0的值。我想知道为什么会发生这种事 我正在分享控制台的结果 当应用程序第一次重新加载时 LOG Platform.OS LOG android 然后导航到另一个屏幕,然后检查平台操作系统 LOG Platform.OS LOG

我正在使用
Platform.OS
检查ios和android。它工作正常,但突然它返回0而不是“ios”或“android”。经过一些RND后,我发现当应用程序第一次加载时,它会返回我“android”,但当我切换屏幕并检查Platform.OS时,它会返回我0的值。我想知道为什么会发生这种事

我正在分享控制台的结果

当应用程序第一次重新加载时

 LOG  Platform.OS
 LOG  android
然后导航到另一个屏幕,然后检查平台操作系统

LOG  Platform.OS 
LOG  0
我正在共享代码片段以检查平台

import { Platform } from 'react-native';

componentDidMount() {
        console.log('Platform.OS');
        console.log(Platform.OS);
}

同样的事情也发生在我身上

我注意到,在一个地方,我错误地使用单个相等运算符检查平台状况,如

paddingTop: (Platform.OS = 'android'
                  ? 16
                  : 4)
然后,每当我检查平台后,我总是得到16分


因此,请确保您在任何地方都有检查条件,如
Platform.OS='android'
将其替换为
Platform.OS=='android'

正如@Rajesh Nasit所暴露的那样,我在写作时也遇到了类似的问题

console.log("Platform.OS:" + Platform.OS) 
我总是进入控制台“Platform.OS:100%” 以下错误(在Expo客户端应用程序中)=>“未处理的承诺错误:无效平台传递了“100%”

然后,在颠倒代码并检查我所做的所有更改后,我找到了导致错误的原因

我的样式表中有以下行

width: Platform.OS === 'android' ? "100%" : "100%",
我以某种方式将值“100%”设置为Platform.OS

最后,我解决了这个错误,如下所示:

const styles = StyleSheet.create({
imagebackground: {
          ...Platform.select({
            ios: {
              width: "100%",
            },
            android: {
              width: "100%",
            },
            default: { 
              width: "100%",
            }
          }),
          marginLeft: 0,
        },

我希望有人能找到有用的答案。

看起来您在代码中的某个地方使用了Platform.OS“=”而不是“==”。 例如:

错误的方式:

正道


你能发布更多的代码吗?因为这不能解释这个问题。也许你不小心给
Platform.OS
分配了一些错误的值?嗨,Samuli,谢谢你的回复。经过长时间的调试,我发现这是React native backhandler的问题。我有一个类似的问题,你能分享一下backhandler问题的更多细节吗?你是怎么修好的?
(Platform.OS ='android')?console.log("this the wrong way):console.log('Oops')
(Platform.OS=='android')?console.log("Youpi it works):console.log('in your dream, this gonna happen again')