React native React本机样式表global.js变量样式错误

React native React本机样式表global.js变量样式错误,react-native,React Native,我不知道为什么,但我的应用程序不喜欢我为组件创建的样式表。在index.js顶层I导入全局变量 从“./src/global”导入全局; 然后我使用global.width,它在/src/styles.js的styles.js文件中正确设置为屏幕宽度。然后我从样式文件中导出各种样式,如下面名为button的样式文件。最后,在我的button组件中,我对react本机样式使用数组表示法,假设最高索引优先,则为组件提供若干宽度,但我只得到一个错误 导出的按钮样式表示例 按钮组件 该错误看起来像是试图

我不知道为什么,但我的应用程序不喜欢我为组件创建的样式表。在index.js顶层I导入全局变量 从“./src/global”导入全局; 然后我使用global.width,它在/src/styles.js的styles.js文件中正确设置为屏幕宽度。然后我从样式文件中导出各种样式,如下面名为button的样式文件。最后,在我的button组件中,我对react本机样式使用数组表示法,假设最高索引优先,则为组件提供若干宽度,但我只得到一个错误

导出的按钮样式表示例

按钮组件


该错误看起来像是试图为宽度指定一个NaN而不是数字值

global.width/2.0是否确实生成有效数字


我建议用一个实际的数字替换变量的这个除法,看看错误是否仍然存在。

我用一个百分比替换了每个global.width,错误消失了。。。这并不能帮助我理解为什么global.width不能生成有效的数字。当我输入console.log变量时,它会生成一个数字。这太令人沮丧了。你能告诉我你是如何初始化styles.js中的global.width变量的吗?谢谢你的关注。很抱歉反应太慢。我更新了问题!我很困惑是什么导致了这个问题,您能在赋值之前尝试将width属性直接转换为一个数字吗。像这样:width:Numberglobal.width/2.0它似乎真的在这个错误中进进出出——除非它持续存在,否则我将把它标记为解决方案。另外,react社区在堆栈上是否很小?尽管这是一篇很长的文章,但我认为这个问题会有更多的进展。
...
padding: 12,
margin: 10,
//width: global.width/2.0,
alignSelf: "center",
marginTop: "auto",
...
      <TouchableOpacity
      onPress={this.props.onPress}
      style={[
        button.regularContainer,
        styles.localButtonStyle,
        this.props.style,
      ]}>
        <Text style={[
          button.regularText,
          styles.localTextStyle,
          this.props.textStyle,
        ]}>
          {this.props.title || 'Button'}
        </Text>
      </TouchableOpacity>
Invariant Violation: [33,"RCTView",541,{"color":4278190080,"textAlign":"center","width":"<<NaN>>","backgroundColor":1308622847,"borderWidth":0,"borderColor":4294967295,"marginTop":40}] is not usable as a native method argument
import React from 'react';

import {
  Dimensions,
  Platform,
} from 'react-native';

let global: {
  HermesInternal: null | {}
};

global.width = Dimensions.get('window').width
global.height = Dimensions.get('window').height
global.ios = Platform.OS === 'ios'

export default global;