2017-10-16 1 views
0

Ich versuche, für die Anzahl der Komponenten für die Schleife, aber es schien nicht funktioniert. I setState die totalitem bis 5, und die Ausgangskomponenten nur 1.React Native - For Loop-Komponenten

_renderSomeItems(){ 
    for(var i = 0; i < this.state.totalitem; i++){ 
    return(
     <SpecialItem key={i} /> 
    ); 
    }  
} 
+1

Mögliche Duplikat [Rückkehr Ist eine Schleife stoppen?] (Https://stackoverflow.com/questions/11714503/does-return-stop-a-loop) – bennygenel

Antwort

1

return innerhalb einer for Schleife wird die Schleife beendet. Sie sollten Array.prototype.map() verwenden. Nicht vergessen return Ergebnis map.

_renderSomeItems(){ 
    // considering this.state.totalitem is to be an array 
    return this.state.totalitem.map((item, index) => { 
    return(
     <SpecialItem key={index} /> 
    ); 
    }  
} 

// or 

_renderSomeItems(){ 
    const results = []; 
    for(var i = 0; i < this.state.totalitem; i++){ 
    results.push(<SpecialItem key={i} />); 
    } 
    return results; 
} 
+0

Dank für die Antwort, 'this.state. totalitem' ist nur eine Nummer. Ich habe in meiner Frage erwähnt, dass ich 'SetState' es auf '5' –

+1

Dann zweite Version ist eine bessere Option für Sie. Deshalb habe ich den Kommentar auf den ersten – bennygenel

+0

hinzugefügt danke, es hat funktioniert! –

0

lodash

import _ from 'lodash' 

_renderSomeItems(){ 
    return _.range(this.state.totalitem).map(item, index) => (
    <SpecialItem key={i} /> 
); 
}