似乎你试图从'react-native'包中访问'ReactNative.Component'

时间:2016-11-16 16:04:54

标签: ios reactjs react-native

我正在尝试从Tyler McGinnis教程中学习反应原生:https://egghead.io/lessons/react-react-native-basic-ios-routing#/tab-code

下面的错误信息似乎很简单,但我不确定我做错了什么。

  

似乎你试图从'react-native'包中访问'ReactNative.Component'。也许你的意思是从'react'包中访问'React.Component'。例如,而不是:

     

从'react-native'导入React,{Component,View};

     

你现在应该这样做:

     

从'react'导入React,{Component};从{导入}   '反应天然';

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

import {Main} from './App/Components/Main';

var styles = StyleSheet.create({   container: {
     flex: 1,
     backgroundColor: '#111111'   }, });

2 个答案:

答案 0 :(得分:4)

您的错误原因:

  

您的文件将<li>设置为&#39; react-native&#39; 默认导出, &#39;做出反应&#39 ; 一个。

你在文件的后面   在设置为&#39; react-native&#39; 默认导出的变量上访问{{myTitle}} {{mySubTitle}} {{item1}} {{item2}} {{item3}} 将无法正常工作(React native不包含{{ 1}}作为命名导出)

&#39; react&#39; 库是React(因此React.Component)的位置命名导出定义的。

<强>解决方案:

Main 中,将导入更改为以下内容:

Component

当您现在引用{Component}时,没有问题,因为它已被正确定义,同时仍保留对React-Native组件的引用。

答案 1 :(得分:2)

此错误消息应该是关于v 0.25.1

引入的弃用的警告

https://github.com/facebook/react-native/releases/tag/v0.25.1

现在不推荐使用react-native的React API。你仍然在你的Main.js

中拥有它
var React = require('react-native');

var {
    StyleSheet,
    Text,
    View
} = React;

将其更改为:

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