2016-05-25 43 views
9

Sto provando a ottenere i dati da una matrice e utilizzando la funzione di mappa per il rendering del contenuto. GuardateRendi il contenuto dinamicamente da una funzione mappa di matrice in React Native

**{this.lapsList()}** 

e l'associato

**lapsList()** 

funzione per capire quello che sto cercando di fare. Il risultato è a dir sta visualizzando (Viste sotto vista, ecc) Ecco il mio codice semplificato:

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

Si prega di descrivere anche il problema – Cherniv

+0

Fatto. In realtà non viene visualizzato nulla (viste generate). –

+0

ok, dai un'occhiata alla mia risposta – Cherniv

risposta

3

Provare a spostare la funzione lapsList fuori dalla classe e nel proprio funzione precedente:

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 grazie Nader, ma potresti dirmi perché è meglio per favore? –

+0

Ehi, non direi che è meglio, solo un altro modo di strutturare il tuo codice credo. In entrambi i casi funzionerà finché si restituisce il componente sulla mappa. –

+0

Ok, l'ho chiesto perché a volte ci vogliono meno risorse! ;-) Btw grazie per il tuo codice! –