私が反応して、このコードを持っている:私がやりたい何jsonの属性を反復してReactにテーブルを作成しますか?
var GridTable = React.createClass({
render: function(){
var rows = [];
var headers = [];
this.props.movies.forEach(function(movie){
headers.push(<GridHeaders movie={movie} key={movie.id}/>);
rows.push(<GridRows movie={movie} key={movie.id}/>);
});
return(
<table>
<thead>{headers}</thead>
<tbody>{rows}</tbody>
</table>
);
}
});
var GridHeaders = React.createClass({
render: function(){
return(<tr><th>{this.props.movie.key}</th></tr>);
}
});
var GridRows = React.createClass({
render: function(){
return(
<tr>
<td>{this.props.movie.id}</td>
<td>{this.props.movie.category}</td>
<td>{this.props.movie.title}</td>
<td>{this.props.movie.director}</td>
<td>{this.props.movie.year}</td>
</tr>
);
}
});
var MovieGrid = React.createClass({
render: function(){
return(
<GridTable movies={this.props.movies}/>
);
}
});
var MOVIES = [
{
"id": 1388534400000,
"category": "SciFi",
"title": "Star Wars: The Force Awakens",
"director": "J.J. Abrams",
"year": 2015
},
{
"id": 1420070400000,
"category": "Horror",
"title": "The Shining",
"director": "Stanley Kubrick",
"year": 1980
}
];
ReactDOM.render(
<MovieGrid movies={MOVIES}/>,
document.getElementById("content")
);
は、JSONを反復し、動的にテーブルを作成するために、GridHeaders
のヘッダーなどの属性をリストです。私は値を指定することは避けたいので、データは何でもかまいません。私はGridRowsで同じことをやりたいのですが、印刷したい値を指定するのではなく、テーブルを分割することを気にせずにテーブルを動的に再構築することができます。どのように私はこれをリアクションで行うことができますか?
私は私が
for(i=0; i < movies.length; i++)
ような何かをするだろう。しかし、私が反応し、JSONと、このインスタンスでこれを行う方法がわからないんだけど、通常のJavaScriptのようなものになるだろうと思っています。
'Grid * 'コンポーネントをムービー固有ではないように一般化する方法を尋ねていますか? –
基本的にはそうですが、より具体的には、私がjson自体以外の何かを調整することなくテーブルに表示する新しい属性値のペアをムービーで返すようにすれば、たとえば、「rating」:「」を属性として追加します。具体的には追加せずに自動的に表示されます。 –