Я изучаю библиотеку React JS, и я хочу создать «цикл» компонента, возвращая значения массива из json-файла. Вот мой файл JSON:Компонент «loop» с React JS
{
"data": {
"children": [{
"data": {
"score": 4
},
{
"data": {
"score": 2
}
}
}]
}
}
Моя реагировать компонент:
var ImagesList = React.createClass({
render: function() {
var imagesNodes = this.props.data.map(function (image){
return (
<div className="card">
<p>{image.score} </p>
</div>
);
});
return (
<div className="images">
{imagesNodes}
</div>
);
}
});
var ImageBox = React.createClass({
getInitialState: function(){
return {
data: {children:[]}
};
},
getImages: function(){
$.ajax({
url: this.props.url,
dataType: 'json',
success: function(data){
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err){
console.error(url, status, err.toString());
}.bind(this)
});
},
componentWillMount: function(){
this.getImages();
},
render: function() {
return (
<div className="list-images">
{<ImagesList data={this.state.data.children}/>}
</div>
);
}
});
React.render(
<ImageBox url="myfile.json" />,
document.getElementById('test')
);
Когда я запускаю код, возвращая эту ошибку:
Uncaught TypeError: Cannot read property 'map' of undefined.
Я не знаю, как исправить это.
Вы получаете ту же ошибку, если не назовешь getImages на компоненте? нет, тогда возвращающая структура данных отключена при повторной рендеринге. –
@Fernando. Помогло ли решение для вас? –