找不到类组件功能

时间:2020-04-20 06:52:22

标签: javascript node.js reactjs

我有问题 这是一个类组件:

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不是函数} 为什么? 我需要安装一些吗?

2 个答案:

答案 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();