2016-10-29 15 views
0

Reactには比較的新しいです。私は多くの場所を見てきましたが、これを特別に処理する方法を見つけることはできません。以前の回答を確認しました。ReactでループされたHTML要素を作成する

私のアプリケーションが配列をループし、配列とともにステートメントを出力しようとしています。

var user = ["Kevin", "Kyle", "Kylian"]; 

var Hello = <h1> 
      Hello, {user}! 
      </h1> 

class App extends Component { 
    render() { 
    for(var i=0;i<user.length;i++){ 
    return Hello; 
    } 
    } 
} 

export default App; 

出力:

Hello, KevinKyleKylian!

予想される出力:あなたが見ることができるように

Hello, Kevin! 
Hello, Kyle! 
Hello, Kylian! 

は、何らかの理由でループが連続して出力全体を返すと、ユーザーの後はありません{ユーザー}の反復では、配列が終了するまで{ユーザー}が表示されます。なぜこれが起こるのですか?どうすればこれを避けることができますか?

+0

私も 'リターンを試してみた

こんにちは、{ユーザー[I]}

' – asdfghjklm

答えて

1

それはおそらく、このビットのためです。その場合は「ユーザー」に

var Hello = <h1> 
      Hello, {user}! 
      </h1> 

は、その配列のだけではなく、特定の要素、配列全体を参照しています。

一般的に、Reactで要素を動的に構築する場合は、renderメソッドではなく別の関数に配置するのがよいでしょう。したがって、このような何か:

getUsers() { 
    let userList = []; 
    for (let i=0; i<user.length; i++) { 
    userList.push(<div>Hello, {user[i]}</div>); 
    } 
    return userList; 
} 

render() { 
    return(
    <div> 
     {this.getUsers()} 
    </div> 
); 
} 
+0

ねえ、これは働いていました。 'render(){ return(

this.getUsers();
)を変更しなければならなかった。 } ' に'レンダリング(){ リターン(
{this.getUsers()};
)。 } ' – asdfghjklm

+0

Woopsie!完了: – Jayce444

+0

反応が難しい、私は比較的新しいですし、すべてを一度に学ぶだけです!私はCodeAcademyコース全体をやっていて、何かを学ばなかった。だから私はもう一度それをやって、それをもっと実践的に把握することを学ぶように、その側面にアプリを構築しています。 – asdfghjklm

関連する問題