[英]Using data from API using fetch() in React
我创建了一个将从API提取数据的组件。 下面的代码工作正常,我可以看到在chrome中使用开发工具时数据已经被拉过,但是我似乎无法访问数组以显示所需的数据。
这就是我目前所拥有的,但是我得到了一个“项目”未定义的错误。
import React, { Component } from 'react';
class FetchConnectApi extends Component {
constructor(props) {
super(props)
this.state = {
response: []
}
}
componentDidMount() {
fetch('http://localhost:3001/jobs')
.then(response => { if (!response.ok)
{ throw Error("Network request failed") }
return response;
})
.then(jobs => jobs.json())
.then(jobs => {
this.setState({
response: jobs
})
}, () => {
this.setState({
requestFailed: true
})
})
}
render() {
if (this.state.requestFailed) return <p>Failed!</p>
if (!this.state.results) return <p>Loading...</p>
return (
<div> this.state.response.map(item => <h1>{item}</h1>)
</div>
)
}
}
export default FetchConnectApi;
数据通过:
State
响应:Array [2] 0:{…} job_class:“ class” job_client:“ client” job_contractor:“ contractor” job_created:“ created” job_details:“ details” job_due:“ due” job_files:“文件” job_id:1 job_name :“ George 123” job_status:“状态” 1:{…} job_class:“ KYC” job_client:“ Ashgrovecompliance” job_contractor:“ d” job_created:“ 09/02/2018” job_details:“再次测试API” job_due:“ 12 / 02/2018“ job_files:” d“ job_id:2 job_name:”修改过的乔治测试“ job_status:” d“
您正在将response
数组重置为一个对象。
this.setState({
response: jobs
})
你可能要push
到数组,如果这就是你要使用的东西。 并且由于您正在使用map
,因此您似乎想要一个数组。 另外,您想用{}
将js括在jsx中,以便将其读为js。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.