【发布时间】:2018-04-27 13:26:00
【问题描述】:
我正在关注有关使用 Fetch 使用 API 数据的在线教程;我能够使用教程中提供的 JSON url 让应用程序获取数据。但是,我对代码进行了一些修改,并尝试从不同的 JSON 文件中获取数据并得到错误:
代码如下:
import React, { Component } from 'react';
import {render} from "react-dom";
import Navbar from '../components/Navbar.jsx';
import Footer from '../components/Footer.jsx';
import './ClientInfo.css';
class ClientInfo extends Component {
constructor(){
super();
this.state= {
titles: []
};
}
componentWillMount(){
fetch('https://jsonplaceholder.typicode.com/todos')
.then(results => {
return results.json();
}).then(data => {
let titles = data.results.map((til) => {
return(
<div key={til.results}>
<p>{til.title} </p>
</div>
)
})
this.setState({titles: titles});
console.log("state", this.state.titles);
})
}
render() {
return (
<div>
<Navbar />
<div className="container">
<div className="clientContainer">
{this.state.titles}
</div>
</div>
<Footer />
</div>
);
}
}
export default ClientInfo
错误发生在这一行:lettitles = data.results.map((til) => {。我能得到一些帮助,因为我做错了什么吗?
【问题讨论】:
-
听起来像
data.results是undefined.... 你用它不应该只是data.map()? -
响应是一个数组,它没有结果属性。所以你需要删除 .results
let titles = data.map((til) => { -
我的意思是,只在每条语句之前使用 console.log,看看你得到了什么。调试应该不难
-
你能不能在回调中使用console.log(data),看看它是否真的包含数组的结果