首页 > 解决方案 > 错误:未处理的拒绝(TypeError):无法读取未定义的属性“地图”不确定我缺少什么

问题描述

我是 React 和 JavaScript 的新手,我正在尝试进行 API 调用以返回状态列表。我的 API 调用工作正常,当我通过控制台注销数组时,数据就在那里。这个问题是映射。当我调用 map 时,我收到错误:

未处理的拒绝(TypeError):无法读取未定义的属性“地图”

代码:

export class StatesDropDown extends Component {
     static displayName = StatesDropDown.name;

    constructor(props) {
        super(props);
        this.state = {
           // isLoaded: false,
            StateList: [],
        };
    }




    componentDidMount() {
        let initialStateList = [];
        fetch('api/States/Index')
            .then(response => {
                return response.json();
            }).then(data => {
                console.log("Data",data);
                
                initialStateList = data.results.map((state1) => {
                    return state1                  
                });
                console.log(initialStateList);
                this.setState({
                   StateList: initialStateList
                });
            });
    }


经过研究,它听起来像是在被调用时它是未定义的,因此是错误,但我很困惑为什么它是未定义的以及为什么它会抛出这个错误。任何帮助,将不胜感激。

标签: javascriptreactjs

解决方案


你打电话时

data.results.map()

我们可以理解这个数据有如下结构

data: { 
   result: [] 
}

正如您的错误所说,未定义的函数映射不存在(在您的情况下,这意味着结果的值未定义)。

您应该确认数据是始终具有关键“结果”的对象。否则,您应该处理这些情况。


推荐阅读