2017-04-13 6 views
0

なぜこのエラーが発生しましたか?私のクラスでコンストラクタを既に追加しています。 android-run startを実行するとエラーが表示され、このエラーが表示されます。nullはオブジェクトではありません(this.state.noteArrayを評価しています)。 - ネイティブに反応します。

nullが( '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> 
    ); 
} 

}

答えて

0

なぜあなたはあなたのマップ機能へのvalと鍵を渡していますか? noteArrayは配列であり、キーと値のペアを持つオブジェクトではありません。 Ether write noteArray as noteArray:{}、または単一の要素で動作するマップ関数を変更します。

1

まあ、 これはうまくいきます。コンストラクタを追加し、そのコンストラクタで状態を宣言します。

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

}

関連する問題