React js map()undefined不是一个函数

thi*_*der 7 javascript ajax reactjs react-jsx

我是React的新手,我有点疯狂试图找出我做错了什么.我试图迭代我从ajax调用得到的json数组.当我模拟数据时,它可以完美地工作,但是当我进行ajax调用以获得完全相同的数据时,它会给我undefined is not a function (evaluating 'this.state.list.map()')

数组:

[ { "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>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.

Hen*_*son 15

改变你的getInitialState().目前,您的数据是对象文字,对象文字不支持map().将其更改为数组.