图像未显示在反应卡组件中

Posted

技术标签:

【中文标题】图像未显示在反应卡组件中【英文标题】:Image not showing up in react card component 【发布时间】:2021-09-18 21:09:10 【问题描述】:

除了图像/替代文本之外的所有内容都在卡片中正确呈现。 data.js 包含卡片数据。我正在尝试使用 index.js 文件将卡信息从 data.js 文件映射到 app.js

这是我的 data.js 文件

   import product1 from "../../Images/img2.jpg";
   export const productData=[
       img : product1,
       alt : "Pizza",
       name: "supremePizza",
       desc: "marinasauce",
       price: "19.99$",
       button:"Add to Cart",
   
       img : product1,
       alt : "Pizza",
       name: "supremePizza",
       desc: "marinasauce",
       price: "19.99$",
       button:"Add to Cart",
   
       img : product1,
       alt : "Pizza",
       name: "supremePizza",
       desc: "marinasauce",
       price: "19.99$",
       button:"Add to Cart"
   
   ]


这是 index.js 文件

这是地图功能,不是映射图像

    import React from 'react';
    import 
        ProductHeading,
        ProductContainer,
        ProductWrapper,
        ProductTitle,
        ProductCard,
        ProductImg,
        ProductInfo,
        ProductDesc,
        ProductPrice,
        ProductButton
     from "./ProductsElements";
     
    
    const Products = (heading,data) => 
        return (
            
            <ProductContainer>
                <ProductHeading>heading</ProductHeading>
                <ProductWrapper>
    
                    data.map((product,index) => 
                        
                        return(
                            
                              <ProductCard key=index>
                                  <ProductImg src=product.img alt=product.alt />
                                  <ProductInfo>
                                      <ProductTitle>product.name</ProductTitle>
                                      <ProductDesc>product.desc</ProductDesc>
                                      <ProductPrice>product.price</ProductPrice>
                                      <ProductButton>product.button</ProductButton>
                                  </ProductInfo>
                              </ProductCard>
                        );
                    )
                </ProductWrapper>
    
            </ProductContainer>
        )
    
    
    export default Products
    

这是主 app.js 文件

    import './App.css';
    
    import Products from './components/Products';
    import productData from './components/Products/data';
    
    function App() 
      return (
        
         <Router>
         
           <Hero />
           <Products heading="Choose Your Favorite" data=productData />
            </Router> 
       
      );
    
    
    export default App;
    
    

请帮我找出错误

【问题讨论】:

【参考方案1】:

如果我们在src 中有一个用于存放我们的静态文件的根文件夹,例如assets,并且在其中我们有一个image 文件夹。我们可以将它导入到该目录/src/components/product/data.js 中存在的data.js 文件中,如下所示:

import img from '../../assets/image/img.jpg'

并在我们的data.js 中使用它,例如:

   import img from '../../assets/image/img.jpg'
   export const productData=[
       src: img ,
       alt : "Pizza",
       name: "supremePizza",
       desc: "marinasauce",
       price: "19.99$",
       button:"Add to Cart",
   ]

最后我们的product.js 将是:

  const Products = (heading,data) => 
        return ( 
            <ProductContainer>
                <ProductHeading>heading</ProductHeading>
                <ProductWrapper>
                    data.map((product,index) => 
                        return(
                              <ProductCard key=index>
                                  //you should change img to src in this line:
                                  <ProductImg src=product.src alt=product.alt /> 
                                  <ProductInfo>
                                      <ProductTitle>product.name</ProductTitle>
                                      <ProductDesc>product.desc</ProductDesc>
                                      <ProductPrice>product.price</ProductPrice>
                                      <ProductButton>product.button</ProductButton>
                                  </ProductInfo>
                              </ProductCard>
                        );
                    )
                </ProductWrapper>
    
            </ProductContainer>
        )
    
    export default Products

【讨论】:

以上是关于图像未显示在反应卡组件中的主要内容,如果未能解决你的问题,请参考以下文章

图像未在列表中显示,反应

在反应中,只有在所有数据可用后才显示组件?

反应本机列表页脚组件未显示(功能组件)

选定的值未显示在文本字段选择中 - 材质 UI 反应组件

使用 useEffect 钩子在反应功能组件中未使用 .map() 显示的元素

Lightning 组件未显示在 Lightning 选项卡上