【问题标题】:Fetch API Error: Cannot read property 'map' of undefined获取 API 错误:无法读取未定义的属性“地图”
【发布时间】:2018-04-27 13:26:00
【问题描述】:

我正在关注有关使用 Fetch 使用 API 数据的在线教程;我能够使用教程中提供的 JSON url 让应用程序获取数据。但是,我对代码进行了一些修改,并尝试从不同的 JSON 文件中获取数据并得到错误:

代码如下:

import React, { Component } from 'react';
import {render} from "react-dom";
import Navbar from '../components/Navbar.jsx';
import Footer from '../components/Footer.jsx';
import './ClientInfo.css';


class ClientInfo extends Component {

    constructor(){
        super();
        this.state= {
            titles: []
        };
    }


    componentWillMount(){
        fetch('https://jsonplaceholder.typicode.com/todos')
        .then(results => {    
          return results.json();
        }).then(data => {
          let titles = data.results.map((til) => { 
            return(                                  
              <div key={til.results}>              
                <p>{til.title} </p>    
              </div>
            )
          })
          this.setState({titles: titles});        
          console.log("state", this.state.titles);
        })
      }



    render() {
        return (
            <div>
                <Navbar />
                <div className="container">
                        <div className="clientContainer">
                      {this.state.titles}
                        </div> 
            </div> 
            <Footer /> 
          </div>
        );
      }
}

export default ClientInfo

错误发生在这一行:lettitles = data.results.map((til) => {。我能得到一些帮助,因为我做错了什么吗?

【问题讨论】:

  • 听起来像data.resultsundefined.... 你用它不应该只是data.map()
  • 响应是一个数组,它没有结果属性。所以你需要删除 .results let titles = data.map((til) =&gt; {
  • 我的意思是,只在每条语句之前使用 console.log,看看你得到了什么。调试应该不难
  • 你能不能在回调中使用console.log(data),看看它是否真的包含数组的结果

标签: reactjs api fetch


【解决方案1】:

data.results - 不是数组。数组数据.map

【讨论】:

  • 谢谢,问题解决了。在教程中,从 API 中提取图像;它的行设置如下: let pictures = data.results.map((pic) => { . ...它在教程中有效,...你知道为什么,图像被存储在其中一个数组。我刚刚修改了该行以提取文本。再次感谢
猜你喜欢
  • 2023-03-23
  • 2014-09-02
  • 2018-09-10
  • 2021-11-14
  • 1970-01-01
  • 2021-12-20
  • 2021-12-10
  • 2021-11-09
相关资源
最近更新 更多