2016-09-23 21 views
2

私の反応したネイティブプロジェクトで「変数を見つけることができません:React」というエラーが表示されます。しかし、私には何の不満がありますが、私はそのファイルでReactを使用していませんが、私はそれを使用するカスタムコンポーネントをインポートしています。ここに私の問題のMCVEがあります。変数を見つけることができません。React - ファイル内で使用されていません。

まずアップconstruction.js

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

class UnderConstruction extends React.Component { 
    render() { 
     return (
      <View> 
       <Text style={{ padding: 75 }}> 
        This page is under construction :(
       </Text> 
      </View> 
     ); 
    } 
} 

export default UnderConstruction; 

次は、render.js

import UnderConstruction from './construction'; 

export function render() { 
    return (
     <UnderConstruction /> 
    ); 
} 

そして最後に、index.ios.js

import React from 'react'; 
import { AppRegistry } from 'react-native'; 
import * as Factory from './render'; 

class Demo extends React.Component { 
    render() { 
     return Factory.render(); 
    } 
} 

AppRegistry.registerComponent('Demo',() => Demo); 

このAを実行します

import React from 'react'; 
import UnderConstruction from './construction'; 

... 

I:私が見つけた

<UnderConstruction /> 

問題は同じようrender.jsReactためimportステートメントを追加することによって解決することができます:PPがあるrender.js行番号5、上のエラーCan't find variable: Reactが発生しますなぜ私はimportReactでも、私はそれをrender.jsで使用していないのですが、この質問に興味があります。だから、私のrender.jsファイルには何の原因でCan't find variable: Reactがエラーになりますか?

+0

あなたは 'NPM私--save react'をしましたか? – Cherniv

+0

@Cherniv私は 'react-native init Demo'を使ってアプリケーションを作成し、' package.json'は '' react ":"^15.3.2 "と' 'react-native": "0.33.0" 、 ' – Jomoos

答えて

3

render関数を使用するには、反応があなたの要素を作成するため、ファイルにReactをインポートする必要があります。私はあなたが蒸留されたJavascriptファイルを一度通過することをお勧めします、あなたは私が何を意味するのか理解するでしょう。

私は自分自身でこの問題に直面していましたが、私はトランスファイルされたJSファイルを見たとき、どのように動作するかを見ました。

だからあなたtranspiledファイルには次のようなものになるだろう: -

(0, _reactDom.render)(_react2.default.createElement(_Root2.default, { store: store, history: history }), document.getElementById('app')); 
+0

JSファイルはどのように表示されますか? – Jomoos

+0

バーベキューでウェブパックを使用していますか? –

+0

私は 'react-native init Demo'を使ってアプリケーションを作成し、' package.json'は '' react ":"^15.3.2 "'と '' react-native ': "0.33.0"依存として。あなたがバンドルされた出力を得られるようになると、[Babel](https://facebook.github.io/react-native/docs/javascript-environment.html) – Jomoos

関連する問題