axios 错误:未捕获类型错误:.map不是函数

bvjxkvbb  于 2022-11-23  发布在  iOS
关注(0)|答案(3)|浏览(208)

我在使用.map函数获取API时遇到问题
我总是得到错误(Apasih.js:23未捕获的类型错误:dataProduk.map不是函数)。
有人能帮我解决这个问题吗?
这是我代码

import React, { useEffect, useState } from 'react';
import Axios from 'axios';
import List_products from './List_products';


const Apasih = () => {
  const [dataProduk, setDataProduk] = useState([]);


 useEffect(() => {
    Axios.get(')
      .then((result) => {
        console.log('data API', result.data);
        const responseAPI = result.data;

        setDataProduk(responseAPI.data);
      })
      .catch((err) => {
        console.log('error: ', err);
      });
  }, []);

  return (
    <div>
      {dataProduk.map((produk) => {
        return <List_products key={produk.id} />;
      })}
    </div>
  );
};

export default Apasih;
esbemjvw

esbemjvw1#

dataProduk是一个对象或未定义,您正在分配result.data.data。您确定这是正确的吗?

fv2wmkja

fv2wmkja2#

您首先需要验证响应是否为Array,例如,请求代码为200,这是可以的,但数据应为null,否则响应将更改useState的类型。

mutmk8jj

mutmk8jj3#

您需要检查它是否不为空并且它也是一个Array,即

!(data && Array.isArray(data))? null : <SomeComponent />

在处理项目中的数组时,请始终使用此逻辑以防止出现后续错误或崩溃。

相关问题