2016-12-10 20 views
0

私の頭をラップするのに問題があります。ここに私が持っているものがありますが、それは働いていません。私が間違ってやっていることについてのいくつかの指針と、それを実行するためのより良い方法がありがとう、ありがとう!複数のアイテムをループしてそれぞれをレンダリングする

const users = [ 
    { 
     "firstName": "John", 
     "lastName": "Doe" 
    }, { 
     "firstName": "Anna", 
     "lastName": "Smith" 
    }, { 
     "firstName": "Peter", 
     "lastName": "Jones" 
    } 
]; 

function Welcome(props) { 
    return <h1>Hello, {props.firstName} {props.lastName}</h1>; 
} 

function allUsers(){ 
    return (
     <div> 
      {for(var i=0; i<users.length; i++){ 
       <Welcome firstName={users[i].firstName} lastName={users[i].lastName}/> 
      }} 
     </div> 
    ) 
} 

ReactDOM.render(
    allUsers(), 
    document.getElementById('root') 
); 
+0

どのようなエラーが発生していますか? – Hosar

+0

20で未知の構文エラーが発生しましたが、forループが嫌いです。 – Steve

答えて

2

forループの代わりに.mapを使用してください。それは、コードの大きな壁がありませんので、また

const users = [ 
 
    { 
 
     "firstName": "John", 
 
     "lastName": "Doe" 
 
    }, { 
 
     "firstName": "Anna", 
 
     "lastName": "Smith" 
 
    }, { 
 
     "firstName": "Peter", 
 
     "lastName": "Jones" 
 
    } 
 
]; 
 

 
function Welcome(props) { 
 
    return <h1>Hello, {props.firstName} {props.lastName}</h1>; 
 
} 
 

 
function allUsers(){ 
 
    return (
 
     <div> 
 
      {users.map(function(user) { 
 
       return <Welcome key={user.firstName} firstName={user.firstName} lastName={user.lastName}/> 
 
      })} 
 
     </div> 
 
    ) 
 
} 
 

 
ReactDOM.render(
 
    allUsers(), 
 
    document.getElementById('View') 
 
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 
<div id="View"></div>

+0

パーフェクト、ありがとう! – Steve

1

、あなたは「やってのより良い方法をお見せするためにコード全体を書き換えるために、私は許さ自分自身をES6を使用している:それはで使用するために、通常は簡単ですが反応しますそれ"。

const users = [ 
    { 
     "firstName": "John", 
     "lastName": "Doe" 
    }, { 
     "firstName": "Anna", 
     "lastName": "Smith" 
    }, { 
     "firstName": "Peter", 
     "lastName": "Jones" 
    } 
]; 

const Welcome = ({firstName, lastName}) => <h1>Hello, {firstName} {lastName}</h1>; 

const AllUsers =() => (
     <div> 
      { 
      users.map((user, key) => <Welcome key={key} firstName={user.firstName} lastName={user.lastName} />) 
      } 
     </div> 
) 

ReactDOM.render(
    <AllUsers />, 
    document.getElementById('root') 
); 
+0

なぜ使用していないキーをWelcomeに送信していますか? – Steve

+0

キーはウェルカムコンポーネントの一意のIDです。それは必要ではありませんが、もしあなたがそれをしなければ、Reactはあなたにコンソールで警告を出します。 –

関連する問題