Javascript React JSON API给出的this.state.map不是函数错误
嘿,我一直在想办法解决这个问题有一段时间了,我在这里到处搜索,但什么也没找到 我有一个API,它包含嵌套数组,并通过JSON提供 当我使用console.log时,我能够获得JSON中显示的内容,但是当我尝试映射数组时,我经常会收到错误,指出.map函数存在问题 据我所见,这通常是因为它不适用于字符串,但据我所知,它不适用于字符串 API中有很多数据,但我确信一旦我知道如何只显示一个数据(例如日期),那么我就可以处理其余的数据了 这是密码Javascript React JSON API给出的this.state.map不是函数错误,javascript,json,reactjs,api,mapping,Javascript,Json,Reactjs,Api,Mapping,嘿,我一直在想办法解决这个问题有一段时间了,我在这里到处搜索,但什么也没找到 我有一个API,它包含嵌套数组,并通过JSON提供 当我使用console.log时,我能够获得JSON中显示的内容,但是当我尝试映射数组时,我经常会收到错误,指出.map函数存在问题 据我所见,这通常是因为它不适用于字符串,但据我所知,它不适用于字符串 API中有很多数据,但我确信一旦我知道如何只显示一个数据(例如日期),那么我就可以处理其余的数据了 这是密码 export default class App ext
export default class App extends React.Component {
constructor() {
super();
this.state = {
myItem: []
};
}
componentDidMount() {
this.getItems();
}
getItems () {
fetch('MYAPIGOESHERE')
.then(results => results.json())
//THIS BELOW WORKS
.then(results => console.log(results.date, results.location));
//THIS BELOW AND THE RENDER DOES NOT
.then(myItem => this.setState({myItem}))
}
render() {
return (
<div>
{this.state.myItem.map (myItem =>
<div> {myItem.date} </div> )}
</div>
)
})
}
}
尝试将setState用大括号括起来:
.then(myItem => {
this.setState({myItem})
})
映射函数与数组一起工作,您似乎只有一个对象。试试这个:
return (
<div> {this.state.myItem.date} </div>
)
返回(
{this.state.myItem.date}
)
并删除映射和左括号之间的空格。您不能映射到
this.state.myItem
,因为它是一个对象
你可以做:
<div>{this.state.myItem.date}</div>
{this.state.myItem.date}
如果有对象数组,可以执行以下操作:
<div>{this.state.myItems.map(e => <div>{e.date}</div>)}</div>
const { teams } = this.state.myItem;
<div>{teams.map(t => <div>{t}</div>)}</div>
{this.state.myItems.map(e=>{e.date}}
比如说
如果对象中包含数组,则可以执行以下操作:
<div>{this.state.myItems.map(e => <div>{e.date}</div>)}</div>
const { teams } = this.state.myItem;
<div>{teams.map(t => <div>{t}</div>)}</div>
const{teams}=this.state.myItem;
{teams.map(t=>{t}}
您拥有的数据如下所示:对象-->数组-->对象,因此您可以将上述数据组合起来显示所需的数据 您能显示从API返回的数据的形状吗?同样,您的第二个
.then()
没有返回任何要在第三个.then()
中使用的内容。您是否尝试过:.then(match=>this.setState({myItem:match}))代码>???@Colin嘿!是的,我知道上面的.then()
部分很奇怪,我只是展示了我一直在测试的两个部分。当我运行它时,我会对其中一个进行编码。数据的形状是什么意思?比如,API响应是什么样子的?太完美了,谢谢!!但最后一个问题,除了对象的数据数组,我如何执行相同的操作?你是指对象数组吗?是的,我做了你上面添加的,我用团队
替换了日期
,团队只保存两个数据,但我一直在获取地图。再次出错,你不是指对象数组,你是说一个有数组的物体。哦,好的,谢谢!我假设我可以将上面数组数据的代码片段与单个对象一起放入return语句中,然后同时呈现date对象和teams数组?