TypeError:无法读取 React Map 中未定义的属性“map”
2021-08-23
93
我用 react 创建了一个电子商务网站,在页面之间重定向时出现错误 问题: 当想从分类页面重定向到单品页面时,出现错误“无法读取未定义的 .map”,但刷新页面时,可以看到页面。 同样,当想从单品页面重定向到主页时也会出现同样的情况。以下代码来自分类页面。在 usequery 中,我在返回函数中使用 isloading、iserror 和 isSuccess,如下所示
const {
isLoading,
isError,
error,
data: res,
isSuccess,
} = useQuery("product", () => Axios.get(`/Product/AllProduct`));
// spinner when data loads
if (isLoading) {
return (
<Col className="text-center" md="12">
<div className="uil-reload-css reload-background mr-1 align-center">
<div className="" />
</div>
</Col>
);
}
if (isError) {
return (
<div>
<h1 className="title text-center">
{error.message}
<br />
<p className="error-msg text-center">
We';re sorry, There is an error encounter.
<br />
Please retry again after few minutes.
</p>
</h1>
</div>
);
}
{isSuccess &&
res.data.Result.map((product) => (
<Col key={product.ID} md="4" sm="4">
<Card className="card-product card-plain">
<div className="card-image">
<img
alt={product.Name}
className="img-rounded img-responsive"
src={`/api/v1/ProductFile/${encodeURIComponent(
product.ID
)}/Product/${encodeURIComponent(product.ProductImages[0])}`}
/>
</Card>
2个回答
在 map 之前使用条件运算符,如下所示:
{isSuccess && res && res.data && res.data.Result && res.data.Result.map((product) => (
或者可选链接:
{isSuccess && res?.data?.Result?.map((product) => (
Izac Cavalheiro
2021-08-23
在 axios 中,您可以使用
res.data
来定位响应。也许这就是您所遗漏的。
Sankshit Pandoh
2021-08-23