【发布时间】:2019-07-22 11:50:44
【问题描述】:
我正在尝试获取一些数据,格式为:
[
{
"id": 1,
"some_data": "..."
},
...
]
我想要得到的是一个列表,显示来自获取的项目。如果我将相同的数据放在项目中的一个文件中,它就可以工作。
但是,当我尝试映射它时,我收到一条错误消息“this.data.map 不是函数”。所以我通过使用Array.from() 对其进行了一些更改。目前看起来是这样的:
export default class Main extends React.Component {
constructor(props) {
super(props);
this.state = {
items = [];
};
this.getData = this.getData.bind(this);
}
getData = () => {
fetch("URL",{
method: "get",
header: { "Content-Type": "application/json" }
})
.then(response => {
var array = Array.from(response.json())
this.setState({items: array});
})
}
render() {
const list = this.state.items.map((r, i) => {
return (
<Item
id = { r[i].id }
some_data = { r[i].some_data }
...
/>
)
})
return(
<div>
<Item
p = {list}
>
</div>
)
}
}
【问题讨论】:
-
您的数据可能不在服务响应的“根”。尝试 console.log(response) 查看响应内容并查找包含您的数据的节点。可能是您的数据在 response.data 中,请尝试使用 console.log。通常,来自服务的响应对象包含的不仅仅是数据......
-
@ChrisAdams 如果我在控制台记录我得到的响应:>Promise {
: Array(15)} 展开后,我看到了我想要显示的数据。 -
得到什么?什么都没有?
-
你在哪里调用方法
getData()你通常在componentDidMount调用它 -
我添加了一个方法
componentDidMount,我称之为getData()。