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
})