react native global全局属性获取不到值

发布于 2022-09-12 22:37:21 字数 1274 浏览 16 评论 0

index.js:

import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';


GLOBAL.XMLHttpRequest = GLOBAL.originalXMLHttpRequest || GLOBAL.XMLHttpRequest
AppRegistry.registerComponent(appName, () => App);

App.js:

import React, { Component } from 'react';
import { View,StatusBar } from 'react-native';

import Nav from './src/nav'
// * 这里设置了一个全局属性
global.statusBarHeight = StatusBar.currentHeight

export default class App extends Component {
  render() {
    return (
      <View style={{flex:1}}>
        <StatusBar translucent={true} backgroundColor="transparent"></StatusBar>
        <Nav></Nav>
      </View>
    );
  }
}

nav.js:

import React, { Component } from 'react';
import { View, Text } from 'react-native';

console.log(global.statusBarHeight) // * undefined
export default class nav extends Component {

  render() {
    return (
      <View>
        <Text> nav </Text>
      </View>
    );
  }
}

image.png
自动更新是能拿到值的,但是手动reload或者重启app,都是undefined
(环境:Android)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

秋千易 2022-09-19 22:37:21
  1. https://www.npmjs.com/package... 推荐看一下这个库
import {StatusBar} from 'react-native';
console.log('statusBarHeight: ', StatusBar.currentHeight);

使用该方式。但是该方式在ios下初始值是undefined

噩梦成真你也成魔 2022-09-19 22:37:21

需要放在类里面

import React, { Component } from 'react';
import { View, Text } from 'react-native';


export default class nav extends Component {
  constructor(props) {
    super(props);
    // * 在类里才能获取到
    console.log(global.statusBarHeight)
  }

  render() {
    return (
      <View>
        <Text> nav </Text>
      </View>
    );
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文