2016-12-21 9 views
2

ich meine erste App mit reactJS bin zu schaffen, aber ich erhalte immer diese Fehlermeldung:Achtung: React.createElement: Typ darf nicht null sein

Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM element) or a ReactClass (for composite components). Check the render method of 'App' 

ich schon ein Dutzend Fragen gelesen habe aber keine Sie haben mir geholfen, dieses Problem zu lösen. Hier sind meine Dateien:

meine app.js Datei:

import React, { Component } from 'react'; 
import { View, Text } from 'react-native'; 
import { Header } from './components/common'; 
import { ChooseLevel } from './components/ChooseLevel'; 

class App extends Component { 

    renderContent() { 
    <ChooseLevel/> 
    } 

    render() { 
    return (
     <View> 
     <Header headerText="my app" /> 
     {this.renderContent()} 
     </View> 
    ); 
    } 
} 

export default App; 

ChooseLevel.js:

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

class ChooseLevel extends Component { 

    render() { 
    var rows = []; 

    for (var i=1; i <= 10; i++) { 
     rows.push(
      <button style={styles.squareStyle}> 
      Level 
      </button> 
     ); 
    } 


    return (
     <div> 
     {rows} 
     </div> 
    ); 
    } 
} 

const styles = { 
    squareStyle: { 
    flex:0.3, 
    height:60 
    } 
}; 

export default ChooseLevel; 
+0

Was macht 'renderContent' überhaupt? Geben Sie die Komponente zurück ... Sie müssen auch die Komponente zurückgeben, wenn Sie "Zeilen" durch Foreaching oder Ähnliches machen – Li357

Antwort

5

Sie sind eine Standard-Export machen: export default ChooseLevel; aber den Import etwas anderes : import { ChooseLevel } from './components/ChooseLevel';

import { ChooseLevel } from './components/ChooseLevel'; wandelt etwa const ChooseLevel = require('./components/ChooseLevel').ChooseLevel;

Um den Standard-Exportwert zu importieren Sie benötigen, um zu import ChooseLevel from './components/Chooselevel';

einen Blick auf http://es6-features.org/#Constants Nehmen Sie es jeden ES6 Funktion im Detail erklärt.

+0

Toll, Upvote .. Ich brauche eine Beratung: als Top-User in * reagieren native * Tag, glaubst du, lernt es würdig?! Jemand sagt, dass es perfekt ist, jemand anderes sagt, dass das eine schreckliche Idee ist. Also bin ich verwirrt, ich möchte eine mobile Anwendung machen (sowohl für Android- als auch für iOS-Betriebssysteme), naja, ist es möglich, professionelle Apps durch * native reagieren zu lassen *? Oder reagiert nativ nur auf Anfänger-Apps? Wie steht es auch mit der Qualität von Apps, die von * nativ * erzeugt wurden? danke – Shafizadeh

+0

Ich sollte definitiv nicht in dieser Liste sein. Ich habe nur kurz damit gespielt und habe nicht viel Erfahrung damit. Dennoch, die Kommentare sind nicht der richtige Ort, um diese Informationen zu suchen, Sie und die Gemeinschaft wird viel mehr profitieren, wenn dies eine Frage von SO oder Programmierer.SE war. Ich bin mir sicher, dass über dieses Thema bereits viel diskutiert wurde. –

Verwandte Themen