未定义不是对象(评估 StatusBarManager.HEIGHT) react-native 0.55.4

IT技术 android reactjs react-native
2021-05-10 07:11:20

我刚刚升级到 react-native 0.55.4。在 iOS 上成功启动并运行后,我现在在 Android 上启动并运行它。我收到以下错误:

Undefined is not an object (evaluating StatusBarManager.HEIGHT) 

Android 模拟器未连接到 devtools

我追踪StatusBarManager.HEIGHTnode_modules/react-native/Libraries/Components/StatusBar/StatusBar.js. 这是我整个代码库中唯一StatusBarManager.HEIGHT被访问的位置,它位于react-native包本身中。任何想法为什么会发生这种情况?我到处寻找解决方案。

出于某种原因,当我将模拟器连接到 react devtools 时,出现了不同的错误:

安卓模拟器红屏报错

2个回答

就我而言,问题是我错过了MainApplication.java 中的一个包

该包new MainReactPackage()位于getPackages()方法内。

像这样尝试

import { Platform, NativeModules } from 'react-native';
const { StatusBarManager } = NativeModules;

const STATUSBAR_HEIGHT = Platform.OS === 'ios' ? 34 : StatusBarManager.HEIGHT;

在 iOS 上,您可以使用 getHeight()

StatusBarManager.getHeight((statusBarHeight)=>{
  console.log(statusBarHeight)
})