Javascript .map()未定义不是React.js中的函数

Javascript .map()未定义不是React.js中的函数,javascript,reactjs,react-jsx,Javascript,Reactjs,React Jsx,是的,我可能忽略了这里显而易见的一点,但我得到了一个“未捕获的TypeError:undefined不是一个函数”,我似乎是。map()这就是问题所在,但我不明白为什么 var idealist = React.createClass({ loadCommentsFromServer: function() { $.ajax({ url: this.props.url, dataType: 'json', success: function

是的,我可能忽略了这里显而易见的一点,但我得到了一个“未捕获的TypeError:undefined不是一个函数”,我似乎是。map()这就是问题所在,但我不明白为什么

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-idealist=React.createClass({
loadCommentsFromServer:函数(){
$.ajax({
url:this.props.url,
数据类型:“json”,
成功:功能(数据){
this.setState({data:data});
}.绑定(此)
});
},
把手按钮点击:功能(输入){
//做事//
},
getInitialState:函数(){
返回{data:[]};
},
componentWillMount:function(){
this.loadCommentsFromServer();
setInterval(this.loadCommentsFromServer,this.props.pollInterval);
},
render:function(){
var clickFunction=this.handleButtonClick;
var ideas=this.state.data.map(函数(i){
返回;
});
返回(
{ideas}
);
}
});
React.renderComponent(
,
document.getElementById('quoteList'))
);
如果我把它改成 var ideas=this.state.data 我没有收到任何错误,JSON数据格式正确,有什么问题吗?

.map()
是一种使用提供的结果创建新数组的方法

以下是相关文件:


这里可以做的事情是更改对象的
.data
属性以返回数组。因为
.map()
只能用于数组类型的对象

这是一个愚蠢的错误,quotes.php没有返回正确格式的JSON数据,因此它不是一个数组。正在调用map()。吸取了什么教训?不要相信别人的话,他们的代码是有效的

您确定this.state.data是数组吗?是JavaScript数组上的函数;它不是由React定义的。请确保
this.state.data
是一个数组。这就是为什么我感到困惑,就我所知,state必须是一个数组,state.data是在getInitialState:function()中定义的,{return{data:[]};},。state.data由loadCommentsFromServer更新。正在讨论的脚本返回正确格式的JSON数据
state
始终是一个对象,而不是数组。您可以粘贴来自Ajax调用的示例返回值吗。我唯一的猜测是
数据
不是JSON响应中的数组。实际上,
映射
适用于任何类似数组的对象,但您需要通过
显式设置
值。调用
。应用
或键入它。