2

我一直在尝试使用 material-ui 并在数组中对其进行迭代(用于为电子商务网站等某些项目创建评级)。代码不起作用。在我的本地主机服务器上,它根本没有显示任何星星。在我让它动态之前,它工作得很好,然后我根据我的功能组件添加了道具以使其动态。其他一切都工作得很好,除了它不接受我在数组中的matrial-ui图标让我迭代。此外,导入语句说“虽然它是导入的,但它的值永远不会被读取”

我的代码:Product.js:

import React from "react";
import "./Product.css";
import StarRateIcon from "@material-ui/icons/StarRate";

function Product({ id, title, image, price, rating }) {
  return (
    <div className="product">
      <div className="product_info">
        <p>{title}</p>
        <p className="product_price">
          <small>$</small>
          <strong>{price}</strong>
        </p>
        <div className="product_rating">
          {Array(rating)
            .fill()
            .map((_, i) => (
              <p StarRateIcon className="star" />
            ))}
        </div>
      </div>
      <img src={image} alt="" />
      <button>Add to Basket</button>
    </div>
  );
}

export default Product;

我的 home.js 文件:

import React from "react";
import "./Home.css";
import Product from "./Product";

function Home() {
  return (
    <div classname="home">
      <div className="home_container">
        <img
          className="home_image"
          src="https://m.media-amazon.com/images/G/01/digital/video/sonata/US3P_JOKER_IMAGE_ID/be07783e-2738-4aaf-b90c-d0ec474d15ae._UR3000,600_SX1500_FMwebp_.jpg"
        />
        <div className="home_row">
          <Product
            id="890778"
            title="Description"
            price={99.99}
            image="https://m.media-amazon.com/images/I/71BGLa7IFtL._AC_UY218_.jpg"
            rating={5}
          />
          <Product />
        </div>
      </div>
    </div>
  );
}

export default Home;

帮助某人!我可以使用表情符号片段,但我真的希望它能够工作。我已经导入 StarRateIcon 并使用它。它不工作。

4

2 回答 2

1

看起来你不小心在你的图标组件名称前面放了一个“p”。你有<p StarRateIcon className="star" />什么时候应该<StarRateIcon className="star" />

于 2020-09-19T04:47:05.517 回答
1

您正在渲染一个p没有内容且具有无效属性的标签,StarRateIcon. 这就是您没有看到任何渲染的原因。如果您检查 HTML,您很可能会看到这些p标签。您可能还会在控制台中看到有关无效属性的错误。您的代码应如下所示:

Array(rating).fill().map(() => <StarRateIcon className="star" />)
于 2020-09-19T05:07:48.697 回答