2016-09-08 77 views
2

基本上我想將反應原生代碼拆分爲幾個js文件。我有我的主'index.ios.js'文件。我有些感動代碼(MainComponent類)到另一個文件:「./iOSCode/main.js'React native - 將整個文件/分割js代碼導入多個文件

如何導入整個‘./iOSCode/main.js’文件內容爲」 指數.ios.js'?

我想:

import { MainComponent as MainComponent } from './iOSCode/main.js'; 

and 

import MainComponent from './iOSCode/main.js'; 

,沒有運氣...

我得到一個錯誤:

Element type is invalid: expected a string (for built-in components) or class/function [...] but got: undefined 
intantiateReactComponent.js:70 
instantiateChild ReactChildReconciler.js:45 

==========

編輯:

從@ Jagadish Upadhyay建議我失蹤近MainComponent類出口語句中」 ./iOSCode/main.js'

代碼:

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

export class MainComponent extends Component { 

    render() { 
    return (
     <Text> abc </Text> 
    ); 
    } 
} 
+1

你有導出類嗎?你能發佈代碼嗎? –

+0

是的,我錯過了MainComponent類中的'export'語句。謝謝。 還有一種方法可以導入整個文件嗎?不僅僅是'./iOSCode/main.js'中的一個類? –

+1

@ kosiara-BartoszKosarzycki有一種方法可以導入所有導出,如果這就是你的意思......例如,如果你導出了兩個類,你可以在main中輸入'import *作爲NameOfModule,'NameOfModule'將包含所有的出口 – azium

回答

4

分離出你需要添加出口聲明一個類,使用此導入格式:

import { MainComponent as MainComponent } from './iOSCode/main.js'; 

您也可以將樣式移出單獨的文件。

styles.js:

import { 
    StyleSheet 
} from 'react-native'; 

const styles = StyleSheet.create({ 

    welcome: { 
    fontSize: 20, 
    textAlign: 'center', 
    margin: 10, 
    }, 
}); 

module.exports = styles; 

,並在主js文件中使用此導入:

import * as styles from './styles.js'; 

記住補充: 'module.exports =風格;'

相關問題