對,我可能在這裏很明顯缺少這個,但我得到一個'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