2017-04-13 2 views
0

Warum im diesen Fehler zu erhalten, aber ich bereits den Konstruktor in meiner Klasse hinzufügen. der Fehler nur angezeigt, wenn ich den Android-Start ausführen und ich bekomme diesen Fehler.null ist kein Objekt (Bewertung ‚this.state.noteArray‘) - Reagieren india

null ist kein Objekt (Bewertung 'this.state.noteArray')

export default class testPoject extends Component { 
constructor(props) { 
    super(props); 
    this.state = {noteArray: []} 
} 

render() { 

    let notes = this.state.noteArray.map((val, key) => { 
     return <Note key={key} keyval={key} val={val} deleteMethod={() => this.deleteNote(key)} /> 
    }); 

    return (
    <View style={styles.container}> 

      <View style={styles.header}> 
       <Text style={styles.headerText}>TODO LIST </Text> 
      </View> 

      <ScrollView style={styles.scrollConainer}> 

      </ScrollView> 

      <View style={styles.footer}> 

       <TouchableOpacity style={styles.addButton}> 
        <Text style={styles.addButtonText}> 
         + 
        </Text> 
       </TouchableOpacity> 

       <TextInput style={styles.noteInputText} 
        placeholder="> Note" 
        placeholderTextColor="#FFF" 
        underlineColorAndroid="transparent" 
        numberOfLines = {3} 
       /> 

      </View> 

    </View> 
    ); 
} 

}

Antwort

0

Warum Sie eine val und Schlüssel zu Ihrer Karte Funktion übergeben? noteArray ist ein Array, kein Objekt mit Schlüssel-Wert-Paaren. Ether schreibe noteArray als noteArray: {} oder ändere deine map-Funktion, um mit einem einzelnen Element zu arbeiten.

1

Nun, eine Sache tun und es wird funktionieren. Fügen Sie einen Konstruktor hinzu und deklarieren Sie in diesem Konstruktor den Status.

constructor() { 
super(); 
this.state = { 
    noteArray:[{ 'note': 'Bingo'}], 
    noteText:'', 
} 

}

Verwandte Themen