我有一个json文件,其中包含一组代表人的数据。
我想为每个人制作一个组件。我应该在我的渲染函数中创建一个组件并遍历我的数据,还是应该在我的ReactDOM.render函数之外循环并在每个循环中传入一个特定的数据?
我应该这样做:
var PersonBox = React.createClass({
render: function() {
var person = this.props.data.map(function(person, index) {
return <div id="person" key={index}>
// person stuff here
</div>
});
return (
<div>
{person}
</div>
);
}
ReactDOM.render(<PersonBox data={mydata} />, document.getElementById('container'));
或者我应该这样做:
var PersonBox = React.createClass({
render: function() {
return (
<div>
// person stuff
</div>
);
}
mydata.map(function(person, index) {
ReactDOM.render(<PersonBox data={person} />, document.getElementById('container'));
}
答案 0 :(得分:1)
您应该使用第一个变体。,您可以将代码拆分为小组件,例如,您可以将代码拆分为两个组件,如此
var Person = React.createClass({
render: function() {
return <div>
Name is <strong>{ this.props.name }</strong>
</div>
}
});
var PersonBox = React.createClass({
render: function() {
var people = this.props.data.map(function(person, index) {
return <Person key={ index } name={ person.name } />
});
return <div>{ people }</div>
}
});