开发者问题收集

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&apos;;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