2017-08-13 40 views
0

嘗試在React Native中創建基本組件並獲取錯誤。創建組件,獲取元素類型無效

元素類型無效:預期爲字符串(對於內置組件)或類/函數(對於複合組件),但得到:未定義。您可能忘記從您定義的文件中導出您的組件。

我只是試圖創建一個組件,該組件將是一個圖像,但有一些調整它的大小。

<ActivityImage>成分是什麼,我試圖讓:

import React from 'react'; 
import { Dimensions, Image } from 'react-native'; 
let windowWidth = Dimensions.get('window').width 

export default class ActivityImage extends React.Component { 
    render() { 
     return (
     <Image source={source} style={{width: windowWidth}} /> 
    ) 
    } 
    } 

的應用代碼:

import React from 'react'; 
import { 
    Dimensions, 
    Image, 
    Text, 
    TouchableHighlight, 
    StatusBar, 
    View, 
} from 'react-native'; 
import { StackNavigator } from 'react-navigation'; 

import styles from './assets/styles'; 

import { Slide1, Slide2, Slide3, Slide4 } from './assets/content'; 
import { ActivityImage } from './components/activityImage';  
    class HomeScreen extends React.Component { 
     constructor(props) { 
     super(props); 
     this.state = { 

     }; 
     } 

     static navigationOptions = { 
      header: null, 
     } 

    render() { 
    const { navigate } = this.props.navigation; 
    return (
     <View style={styles.container}> 
     <StatusBar hidden /> 
     <ActivityImage source={require('./assets/images/0.jpg')} /> 
     </View> 
    ); 
    } 
} 

const AppNavigation =() => (
    <SimpleAppNavigator /> 
); 

export default class App extends React.Component { 
    render() { 
    return (
     <AppNavigation/> 
    ); 
    } 
} 
+0

你正在導入它嗎? – Li357

+0

可能不是,但我無法弄清楚是什麼問題。該代碼是正確的教程。 –

回答

0

我假設你導入錯過組件,如<View><StatusBar>和... 您應該使用您的props獲取組件的源代碼。你應該爲圖像定義一個高度,在這個例子中,我將它設置爲200.以這種方式,你的組件將是這樣的:

export default class ActivityImage extends React.Component { 
    render() { 
    return (
     <Image source={this.props.source} style={{width: windowWidth, height: 200}}/> 
    ) 
    } 
}