对,我可能在这里很明显缺少这个,但我得到一个'Uncaught TypeError:undefined不是函数'我似乎是.map()这是这个问题,但我不明白为什么。.map()undefined不是函数React.js
var idealist = React.createClass({
loadCommentsFromServer: function() {
$.ajax({
url: this.props.url,
dataType: 'json',
success: function(data) {
this.setState({data: data});
}.bind(this)
});
},
handleButtonClick: function(input) {
// do stuff //
},
getInitialState: function() {
return {data: []};
},
componentWillMount: function() {
this.loadCommentsFromServer();
setInterval(this.loadCommentsFromServer, this.props.pollInterval);
},
render: function() {
var clickFunction = this.handleButtonClick;
var ideas = this.state.data.map(function(i){
return <ideabox data={i} onButtonClick={clickFunction} />;
});
return (
<div className="idealist">
{ideas}
</div>
);
}
});
React.renderComponent(
<idealist url="/json/quotes.php" pollInterval={2000}/>,
document.getElementById('quoteList')
);
如果我将其更改为 VAR想法= this.state.data 我没有得到任何错误,JSON数据格式正确,还有什么能错了吗?
你确定this.state.data是一个数组吗? – Hatsjoem
['map'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)是JavaScript的Array上的一个函数;它没有被React定义。确保'this.state.data'是一个数组。 –
这就是为什么我很困惑,状态,据我所知必须是一个数组和state.data定义在getInitialState中:function(){ return {data:[]}; }。 state.data由loadCommentsFromServer更新。有问题的脚本返回格式正确的JSON数据 – t1m0thy