![](/img/trans.png)
[英]console.error in react-native throws red screen even when __DEV__ is false
[英]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.