繁体   English   中英

在React Native上使用require而不是import时出现红屏

[英]Red screen when using require instead of import on React Native

使用时出现如下红色屏幕

var React = require('react-native');
var {
    AppRegistry,
    StyleSheet,
    Text,
    TextInput,
    View,
    TouchableHighlight,
    ActivityIndicatorIOS,
    NavigatorIOS,
    Image,
    Component
} = React;

在此处输入图片说明

但是它在使用时有效

import React from 'react';

import {
    AppRegistry,
    StyleSheet,
    Text,
    View,
    NavigatorIOS
} from 'react-native';

在此处输入图片说明

但是如果我将其更改为

var React = require('react');

它带有另一个红色屏幕:

在此处输入图片说明

我的index.ios.js的完整代码是这样的:

'use strict';

//import React from 'react';
//
//import {
//    AppRegistry,
//    StyleSheet,
//    Text,
//    View,
//    NavigatorIOS
//} from 'react-native';

var React = require('react-native');

var styles = React.StyleSheet.create({
    text: {
        color: 'black',
        backgroundColor: 'white',
        fontSize: 30,
        margin: 80
    },
    container: 
    {
        flex: 1
    }
});

class HelloWorld extends React.Component {
  render() {
    //return React.createElement(Text, {style: styles.text}, "Hello World!");
      return <Text style={styles.text}>Hello World Again</Text>;
  }
}

class PropertyFinderApp extends React.Component {
    render() {
        return (
            <NavigatorIOS
                style = {styles.container}
                initialRoute={{
                    title: 'Property Finder',
                    component: HelloWorld,
            }}/>
        );
    }
}

//AppRegistry.registerComponent(
React.AppRegistry.registerComponent(
    'PropertyFinder', 
    function() { return PropertyFinderApp }
);

仅供参考:我在这里按照Raywenderlich的教程学习RN。 因此,完整的代码将从此处复制。

这是版本信息的package.json

{
  "name": "PropertyFinder",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start"
  },
  "dependencies": {
    "react": "15.1.0",
    "react-native": "0.28.0"
  }
}

Component被移动到React而不是React-Native下

import React, {
  Component
} from 'react';

import ReactNative, {
  ...
} from 'react-native';

当然,您也可以使用require做到这一点,对此没有限制。

我相信这里的问题不是导入或要​​求,而是导入的内容。

您是否尝试过更换

var React = require('react-native')

var React = require('react')

在Facebook的最近更新之一中,react和react-native脱钩后,这种情况开始发生

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM