【问题标题】:Image not getting displayed when using Reactjs map function. Error--SRC undefined使用 Reactjs 地图功能时图像未显示。错误--SRC 未定义
【发布时间】:2021-09-28 07:16:47
【问题描述】:

这是错误:

其他所有东西都可以很好地显示,而不是我的图像。我正在使用保存在本地计算机中的图像,并且在 VC 编辑器控制台中没有出现错误。我在开发者工具控制台中遇到错误。

./card/index.jsx

import React from 'react'
const Card = (props) => {
        console.log(props);
        return (
        <div className="wrapperDiv">
            <img src={props.img} alt={props.alt}/>
            <p>{props.desc}</p>
            <button>{props.value}</button>
          </div>
    )
}

export default Card

./reports/index.jsx

import React from 'react';
import Card from './Card';
import Data from './Card/data';

function createCard(Data){
    return <Card
    src={Data.src}
    alt={Data.alt}
    desc={Data.desc}
    value={Data.value}
    />
}


const Reports = () => {
    return (
        <div className="reportsDiv">
           { Data.map(createCard)}
            
        </div>
    )
}

export default Reports
   

        

数据文件

import img1 from "./img.jpg";
const Data=[
    {
        id:1,
        img:"{img1}",
        alt:"helloworld",
        desc:"Sdfasdf",
        value:"5GB" 
    },
    {
        id:2,
        img:{img1},
        alt:"helloworld",
        desc:"Sd",
        value:"35GB"
    },
    {
        id:3,
        img:{img1},
        alt:"helloworld",
        desc:"asdf",
        value:"3GB"
    }
]

export default Data;
     
    

如果我像这样在卡片组件中赋予价值,它会起作用:

 {/* <Card 
                img={img1}
                alt="helloworld"
                desc="System Junk"
                value="35GB" 
                />
                
                       
                <Card 
                img={img1}
                alt="helloworld"
                desc="Sdfasdf"
                value="35GB" 
                />
                <Card 
                  



img={img1}
                alt="helloworld"
                desc="vhghhjghjg"
                value="35GB" 
                />
               */}
  

但是如果我使用 map 函数,src 将会未定义。请帮忙。提前感谢您的帮助。

【问题讨论】:

    标签: arrays reactjs image map-function


    【解决方案1】:

    请注意您发送 src 作为图像源的 createCard 函数:

    function createCard(Data){
        return <Card
        src={Data.src}// you're sending src as the prop
        alt={Data.alt}
        desc={Data.desc}
        value={Data.value}
        />
    }
    

    但您将在Card 组件中使用img 作为源:

    const Card = (props) => {
            console.log(props);
            return (
            <div className="wrapperDiv">
                <img src={props.img} // but using img as the prop which is incorrect
                     alt={props.alt}/>
                <p>{props.desc}</p>
                <button>{props.value}</button>
              </div>
        )
    }
    

    Card改成下面的就可以解决问题了:

    const Card = (props) => {
            console.log(props);
            return (
            <div className="wrapperDiv">
                <img src={props.src} // change it to src
                     alt={props.alt}/>
                <p>{props.desc}</p>
                <button>{props.value}</button>
              </div>
        )
    }
    

    【讨论】:

    • 对比CardComponent检查你的路径。我的意思是,如果您想在CardComponent 上导入图像,图像的来源是什么?会不会又是'./img.jpg'?
    • @fullstackdeveloper 在 data.js 文件中,将数据模型中的所有 img 属性更改为 src。请查看此链接:codesandbox.io/s/goofy-kapitsa-w7opw 一切正常。
    • 您在启动应用之前尝试过npm run build 命令吗?
    • 我看到您在其他文件夹中有一些图像。请删除所有这些,并将其保留在公共文件夹中。与此链接中的此结构相同:codesandbox.io/s/dawn-star-0rpep
    • 我认为你的真实代码中的远程连接和检查问题将是最终的解决方案。请留下评论以获取联系信息。
    猜你喜欢
    • 2019-04-19
    • 2021-04-04
    • 2020-04-10
    • 2021-04-08
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    相关资源
    最近更新 更多