javascript - 不断收到 TypeError : guide. map is not a function

标签 javascript reactjs

我似乎无法弄清楚为什么它不能正常工作。我已经检查了几个小时,我认为我已经正确设置了它,但它一直给我错误。我不确定我的状态设置是否不正确。当我 console.log 时,它从 api 获取示例数据并将其显示在控制台中。

import React, { useState, useEffect } from 'react'
import styled from 'styled-components'
import axios from 'axios'
import GuideData from './Guides/GuideData.js'
import GuideLoader from './Guides/GuideLoader.js'

const GuideRender= styled.div`
display:flex;
flex-direction:column;
justify-content:space-between;
border: 5px black;
`

const HomePage = () => {

    const[guide, setGuide]=useState([]);
    const apiLink ='https://how-to-guide-unit4-build.herokuapp.com/api/guides/'


    useEffect(() => {
        axios
        .get(apiLink)
        .then(response => setGuide(response))
        .catch(err =>
            console.log(err));
    }, []);
    console.log(guide)

    if (!guide) return <GuideLoader />;


    return (
        <div>
        <GuideRender>
            {guide.map(item => (
                <GuideData key={item} item={item} />
            ))} 
        </GuideRender>
        <div>
            <button>Create Article</button>
        </div>
        </div>
    )
}


export default HomePage

enter image description here

最佳答案

现在,稍微清理一下 useEffect 函数。错误在于您仅设置了 response,而不是 response.data

  const HomePage = () => {
  const [guide, setGuide] = useState([]);
  const [loading, setLoading] = useState(true);

  const apiLink = "https://how-to-guide-unit4-build.herokuapp.com/api/guides/";

  useEffect(() => {
    fetchData();
  }, []);

  const fetchData = async () => {
    try {
      const response = await axios.get(apiLink);
      setGuide(response.data);
      setLoading(false);
    } catch (error) {
      console.log(error);
    }
  };

  if (loading) {
    return "Loading...";
  }

  console.log(guide);
  return (
    <div>
      <GuideRender>
        {guide.map(item => (
          <GuideData key={item} item={item} />
        ))}
      </GuideRender>
      <div>
        <button>Create Article</button>
      </div>
    </div>
  );
};

关于javascript - 不断收到 TypeError : guide. map is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61494713/

相关文章:

javascript - 如何在 react 前端显示 Google Passport oAuth 同意屏幕,而不是使用快速 View 模板

reactjs - 在 react-redux 应用程序中使用上下文是否有意义?

reactjs - 创建基础组件然后在 React 中扩展它们是一个好习惯吗?

CSS 模块嵌套选择器

javascript - 检测滚动元素之间的距离

javascript - 在我的 sidenav 上启用滚动

javascript - 在 Chrome 调试器工具中设置超时

c# - websocket 连接失败?

javascript - React Eslint 解构赋值

javascript - 自2020年起,YouTube是否允许在移动设备上嵌入实时聊天评论?