Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript this.state.persons.map不是函数,但persons已经是数组_Javascript_Reactjs - Fatal编程技术网

Javascript this.state.persons.map不是函数,但persons已经是数组

Javascript this.state.persons.map不是函数,但persons已经是数组,javascript,reactjs,Javascript,Reactjs,这是我第一次使用React,开始使用Axios时遇到了一些问题。我看了一个视频,这是一个非常简单的实用教程,演示了如何使用get函数,但我认为有些地方出了问题,因为即使按照相同的步骤,我仍然会得到错误“this.state.persons.map不是函数”。我想强调一个事实,视频的作者使用了完全相同的JavaScript代码,对他来说,它是有效的。有什么解释吗 以下是整个代码供参考: import React from "react"; import axios from &

这是我第一次使用React,开始使用Axios时遇到了一些问题。我看了一个视频,这是一个非常简单的实用教程,演示了如何使用get函数,但我认为有些地方出了问题,因为即使按照相同的步骤,我仍然会得到错误“this.state.persons.map不是函数”。我想强调一个事实,视频的作者使用了完全相同的JavaScript代码,对他来说,它是有效的。有什么解释吗

以下是整个代码供参考:

import React from "react";
import axios from "axios";

export default class personList extends React.Component{
    state = {
        persons: [],
    };

    componentDidMount(){
        axios.get(`https://jsonplaceholder.typicode.com`)
        .then(res =>{
            console.log(res);
            this.setState({persons: res.data});
        });
    }

    render() {
        return (
            <ul>
                {this.state.persons.map(person => <li key={person.id}>{person.name}</li>)}
            </ul>
            )
    }
}
从“React”导入React;
从“axios”导入axios;
导出默认类personList扩展React.Component{
状态={
人员:[],
};
componentDidMount(){
axios.get(`https://jsonplaceholder.typicode.com`)
。然后(res=>{
控制台日志(res);
this.setState({persons:res.data});
});
}
render(){
返回(
    {this.state.persons.map(person=>
  • {person.name}
  • )}
) } }

我四处寻找答案,但其他案例要么太不一样(使用set数组、json和诸如此类),要么引用的是字符串而不是数组,这会导致错误,显然这不是我的情况。

您正在
https://jsonplaceholder.typicode.com
返回整个网页。如果要获取用户,请使用此URL:
https://jsonplaceholder.typicode.com/users

您的
控制台.log
res
显示它包含什么?该url会转到他们的html主页,而不是在您请求获取完整页面时返回JSON的路径。您应该使用console.log来查看其中的内容,map是必须在数组类型的数据上实现的函数。你应该在你的api中添加/个用户(像这样)A和!原来我没有完全复制代码!谢谢,现在它工作了!很乐意帮忙D