2017-02-12 7 views
0

movieList.jsx内に単純なコンポーネントMovies.jsxとオブジェクトの配列があります。この配列を書き出し、Movies.jsx内の状態をその配列と同じに設定しています。私がコンソールを見ると、私はそれが状態okに渡されたことがわかります。配列を繰り返してレンダリングする

オブジェクトの配列を繰り返してレンダリングし、レンダリングします:それはどのようにするのですか? 私は何をしようとするとエラー "オブジェクトは反応の子として有効ではありません"

私はそれをjsonオブジェクトでしたが、私はそれを見ていませんでした。

私はまた、実施例2

enter image description here

enter image description here

の「アレイまたはイテレータ内の各子供がユニークな 『キー』は小道具持っている必要があります」というエラーを取得しています: それはどのようになります配列の代わりにJSONオブジェクトだった場合。私たちはまた、それを別個のコンポーネントからエクスポートし、それから必要とするでしょうか?どのようにそれを繰り返しますか?

enter image description here

答えて

2

ここでは、達成しようとしているものの簡単な例を示します。あなたがスクリーンショットを提供して以来、私はメークシフトデータを提供しなければならなかった。

var Movies = { 
 
    "data": [{ 
 
     "id": 1, 
 
     "name": "Forest Gump", 
 
     "rating": 5 
 
    }, { 
 
     "id": 2, 
 
     "name": "Lion", 
 
     "rating": 5 
 
    }] 
 
}; 
 

 
var Movie = React.createClass({ 
 
    render: function() { 
 
    return (
 
     <div> 
 
      <div>Name: {this.props.item.name}</div> 
 
      <div>Rating: {this.props.item.rating}</div> 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 

 
var MovieContainer = React.createClass({ 
 
    getInitialState() { 
 
    return { 
 
     movies: null 
 
    }; 
 
    }, 
 
    componentWillMount: function() { 
 
    this.setState({ 
 
     movies: Movies.data 
 
    }) 
 
    }, 
 
    render: function() { 
 
    return (
 
     <div> 
 
     { this.state.movies.map(function(item) { 
 
      return (
 
      <Movie key={item.id} item={ item } /> 
 
     ) 
 
     }) } 
 
     </div> 
 
    ); 
 
    } 
 
}); 
 
    
 
ReactDOM.render(
 
    <MovieContainer />, 
 
    document.getElementById('container'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.2/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.2/react-dom.min.js"></script> 
 

 
<div id="container"></div>

+0

おかげで勝利。それは美しく働いた。答えを更新し、提供された配列の代わりにそれが問題のJSONオブジェクトであるかどうかを教えてください。別のコンポーネントにもあります。例は上記の私の質問です。私はそれを輸出する必要がありますか、それとも十分に必要ですか? –

+0

@ Igor-Vuk私の答えを更新しました。 – Win

関連する問題