在 React 中从 api 获取数据时出现“.map 不是函数”错误
2022-08-05
311
我是 React 新手,我想渲染从 API 获取的产品数据。我正在使用 map 函数在屏幕上显示从 API 获取的数据。但控制台中出现以下错误。数据没有问题,我可以看到它是从 API 中提取的控制台结果,但它没有以表格的形式打印在屏幕上,我认为如果我解决了 .map 函数问题,它可能会起作用。可能是什么问题。你遇到过这个问题吗?
错误
ProductList.js:27 Uncaught TypeError: products.map is not a function
The above error occurred in the <ProductList> component:
我的产品列表
import { ProductContext } from '../Contexts/ProductContext';
import React, { useContext } from 'react';
import Product from './Product'
export default function ProductList() {
const { products } = useContext(ProductContext);
return (
<>
<div>
<table className='table table-striped table-hover'>
<thead>
<tr>
<th>Product ID</th>
<th>product is offerable</th>
<th>Product Name</th>
<th>Product Description</th>
<th>Product is sold</th>
<th>Category ID</th>
</tr>
</thead>
<tbody>
<div>
{products.map((product) => (
<tr>
<td>{product.productId}</td>
<td>{String(product.isOfferable)}</td>
<td>{product.productName}</td>
<td>{product.productDescription}</td>
<td>{String(product.isSold)}</td>
<td>{product.categoryName}</td>
</tr>
))}
</div>
</tbody>
</table>
</div>
</>
)
}
我的 API 数据来自 POSTMAN
{
"data": [
{
"categoryId": 1,
"productId": 1,
"productName": "Bilgisayar",
"categoryName": "Yazılım",
"colorName": "gri",
"price": 15000,
"brandName": "ASUS",
"isOfferable": false,
"isSold": false
}, // example data. it continues like this
2个回答
您尝试迭代对象而不是对象内的数组。您必须使用
products.data.map(...)
。此外,我建议在您的产品对象上使用可选链接,因为您将在
products
从服务器完全获取之前尝试访问
.data
。因此,您的
products
对象最初将未定义,并且您无法在其上访问
.data
。
{products?.data.map((data) => ...}
PRSHL
2022-08-05
改为执行
products.data.map()
你跳过了包含数组的数据
Alaa Eddine Cherif
2022-08-05