Javascript react中的Map函数(err:TypeError:e.Map不是函数)

Javascript react中的Map函数(err:TypeError:e.Map不是函数),javascript,arrays,reactjs,object,map-function,Javascript,Arrays,Reactjs,Object,Map Function,我想从道具渲染项目,我可以使用初始状态,但不能使用服务器的响应。我的渲染功能: const { data } = this.props; return ( <div > {data.map((item, index) => <div key={index} className="row"> <span data = { data } className="

我想从道具渲染项目,我可以使用初始状态,但不能使用服务器的响应。我的渲染功能:

 const { data } = this.props;
    return (
      <div >
          {data.map((item, index) =>
              <div key={index} className="row">
                  <span data = { data } className="number col-4 col-md-8">{item._id}</span>
                  <span data = { data } className="date col-4 col-md-2">{item.date}</span>
                  <span data = { data }  className="tag col-4 col-md-2">{item.tag}</span>
                  <div className="col-md-12 ">
                    {item.text}
                  </div>                
              </div>
          )}
      </div>
    )
  }
const{data}=this.props;
返回(
{data.map((项目,索引)=>
{item.\u id}
{item.date}
{item.tag}
{item.text}
)}
)
}
我犯了这个错误:

类型错误:e.map不是一个函数


响应:Object{data:Array(12),status:200,statusText:“OK”,headers:Object,config:Object…}

当响应挂起时,您可以使用
数据的默认值。此时未定义
数据

const { data = [] } = this.props;
或jsx中的使用条件:

render() {
   if (!data || !data.length) return null;
   ...
}

看起来你的回答只是原始的回答。如果您使用的是fetch,那么承诺链应该是这样的:

fetch(fromMySource).then(resp => resp.json()).then(data => doSomething(data));

看起来您可能正试图直接使用resp,这将使您的数据数组看起来像您在问题中发布的响应对象

只需将这些单词添加到地图功能中, 因为需要检查数组是否存在,所以执行map函数

const { data } = this.props;
    return (
      <div >
          {data && data.length && data.map((item, index) =>
              <div key={index} className="row">
                  <span data = { data } className="number col-4 col-md-8">{item._id}</span>
                  <span data = { data } className="date col-4 col-md-2">{item.date}</span>
                  <span data = { data }  className="tag col-4 col-md-2">{item.tag}</span>
                  <div className="col-md-12 ">
                    {item.text}
                  </div>                
              </div>
          )}
      </div>
    )
  }
const{data}=this.props;
返回(
{data&&data.length&&data.map((项,索引)=>
{item.\u id}
{item.date}
{item.tag}
{item.text}
)}
)
}

必须更改父组件更改此项:

  this.setState({
    data: response
  })


我试图从子组件获取数据,但无法工作(可能是因为映射功能)

您对服务器的调用在哪里?您的代码中
e.map
在哪里?您能说明如何根据响应更新数据吗?看起来数据未定义,所以我认为您正在重写某些内容,但在看到代码之前我无法确定。看起来它在响应不存在时呈现,并且在响应之后不会重新呈现。。
  this.setState({
    data: response.data
  })