我有问题 这是一个类组件:
import React from 'react';
import ListToDo from './ListToDo';
export default class TestClass extends React.Component{
state ={
tasks:[]
}
async componentDidMount(){
const response = await fetch('https://nztodo.herokuapp.com/api/task/?format=json');
const tasks = await response.json
this.setState({
tasks
});
}
render(){
return(
<ul className="list-group">
{
this.state.tasks.map(function(singleTask){
return <ListToDo task={singleTask} key={singleTask.id} />
})
}
</ul>
);
}
错误是: TypeError:this.state.tasks.map不是函数} 为什么? 我需要安装一些吗?
答案 0 :(得分:1)
response.json
是一个函数。您正在将其分配为tasks
状态。因此,当您尝试使用Array.prototype.map()
时,tasks
不是数组。
调用它而不是将其分配给任务:
async componentDidMount(){
const response = await fetch('https://nztodo.herokuapp.com/api/task/?format=json');
const tasks = await response.json() // Call json function here
this.setState({
tasks
});
}
答案 1 :(得分:0)
response.json是一个函数,因此无法映射到一个函数。 只需将此行更改为
const tasks = await response.json();