TypeError:posts.map 不是 Reactjs 中的函数,同时使用 useEffect 钩子从 API 获取数据

TypeError: posts.map is not a function in Reactjs while fetching data from an API using useEffect hook

提问人:Sajitha Anu 提问时间:11/9/2023 更新时间:11/9/2023 访问量:30

问:

我收到以下错误,在此处输入图像描述

import React ,{useState,useEffect} from 'react'; 从 'axios' 导入 axios;

函数 DataFetching() {

const[posts,setPosts]= useState([])

useEffect(()=>{

    axios.get('https://reqres.in/api/users')
    .then(res=>{

        console.log(res)
        setPosts(res.data)
    })
    .catch(err=>
        console.log(err) )

},[])
return (
    <div>
      
        <ul>
            {
          **  posts.map(post=><li key={post.id}>{post.email}</li>)**
            }
        </ul>
        
    </div>
);

}

导出默认 DataFetching;

数据成功存储在钩子中,但 map 函数出现错误:Posts.map 不是函数

我尝试过Object.values(posts).map,但它不起作用

reactjs 数组 react-hooks

评论

0赞 Community 11/10/2023
请澄清您的具体问题或提供其他详细信息以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。

答:

0赞 Saidamir 11/9/2023 #1

也许尝试实现您的数据获取,如下所示。希望它有效。

  useEffect(() => {

    const fetchData = async () => {
      try {
        const response = await axios.get('https://reqres.in/api/users');
        if (response.status === 200) {
          const data = response.data;
          console.log(data);
          setPosts(data);
        } else {
          throw new Error('Network error occured.');
        }
      } catch (error) {
        console.error('Error occured while fetching data: ', error);
      }
    };

    fetchData();
  }, []);

StackBlitz 示例

评论

0赞 Sajitha Anu 11/9/2023
感谢您的回复。我已经按照建议尝试了。但它不起作用。它显示“<DataFetching>组件中发生了上述错误。但没有关于错误的详细信息