2016-05-25 6 views
9

Ich versuche, Daten aus einem Array zu erhalten und mithilfe der Kartenfunktion Inhalte zu rendern. Schauen Sie sichInhalt dynamisch aus einer Array-Map-Funktion in React Native rechen

**{this.lapsList()}** 

und der damit verbundenen

**lapsList()** 

Funktion zu verstehen, was ich versuche zu tun. Das Ergebnis wird nichts angezeigt wird (Views unter Ansicht, etc.) Hier ist meine vereinfachte Code:

class StopWatch extends Component { 

constructor(props) { 
    super(props); 

    this.state = { 
    laps: [] 
    }; 
} 

render() { 
    return (
    <View style={styles.container}> 
     <View style={styles.footer}> 
      <View><Text>coucou test</Text></View> 
      {this.lapsList()} 
     </View> 
    </View> 
) 
} 

lapsList() { 

    this.state.laps.map((data) => { 
     return (
     <View><Text>{data.time}</Text></View> 
    ) 
    }) 

} 

_handlePressLap() { 

    console.log("press lap"); 

    if (!this.state.isRunning) { 

    this.setState({ 
     laps: [] 
    }) 

    return 

    } 

    let laps = this.state.laps.concat([{'time': this.state.timeElapsed}]); 

    this.setState({ 
     laps: laps 
    }) 

    console.log(laps); 

} 

}

+0

Bitte beschreiben Sie auch Ihr Problem – Cherniv

+0

Fertig. Tatsächlich wird nichts angezeigt (generierte Ansichten). –

+0

ok, werfen Sie einen Blick auf meine Antwort – Cherniv

Antwort

3

Versuchen Sie die lapsList Funktion aus Ihrer Klasse und in Ihre re nder Funktion:

render() { 
    const lapsList = this.state.laps.map((data) => { 
    return (
     <View><Text>{data.time}</Text></View> 
    ) 
    }) 

    return (
    <View style={styles.container}> 
     <View style={styles.footer}> 
     <View><Text>coucou test</Text></View> 
     {lapsList} 
     </View> 
    </View> 
) 
} 
+0

Ok danke Nader, aber könnten Sie mir sagen, warum es besser ist bitte? –

+0

Hey, würde nicht sagen, es ist besser, nur eine andere Art der Strukturierung Ihres Codes, denke ich. So oder so funktioniert es, solange Sie Ihre Komponente in der Karte zurückgeben. –

+0

Ok, ich habe das gefragt, weil es manchmal weniger Ressourcen braucht! ;-) Btw danke für deinen Code! –