Я новичок в React, и я немного схожу с ума, пытаясь понять, что я делаю неправильно. Я пытаюсь выполнить итерацию через json-массив, который я получаю от вызова ajax. Когда я издеваться данные, которые он отлично работает, но когда я делаю AJAX вызов, чтобы получить ту же самую информацию, что дает мне undefined is not a function (evaluating 'this.state.list.map()')
React js map() undefined не является функцией
массив:
[ { "name": "drop1" }, { "name": "drop2" }, { "name": "drop3" } ]
функция:
var List = React.createClass({
getInitialState: function() {
return {data: {}};
},
componentDidMount: function() {
$.ajax({
url: ACTUAL_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)
});
},
render: function() {
return (
<ul className="droplist">
{this.state.data.map(function(l){
return (<li>{l.name}</li>)
})}
</ul>
);
}
});
Любая помощь очень ценится.
В дополнении к представленному Ответ: вы обычно не выполняете ajax-запросы от компонента. – zerkms
@zerkms Не согласен, обычно, если вы не используете Flux. –
@limelights, даже если вы не следуете за Flux - вам нужно использовать другой архитектурный шаблон дизайна, который отделяет презентацию от настойчивости и бизнес-логики. – zerkms