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

Posted

技术标签:

【中文标题】图像未在列表中显示,反应【英文标题】:Image not displaying inside List, React 【发布时间】:2020-03-02 08:38:02 【问题描述】:

我正在创建一个简单的 React 组件,它以列表/数组的形式显示图像。

来源如下图:

import React from "react";
import styled from "styled-components";
import burgerTop from "../../assets/images/burgerTop.png";
import burgerBottom from "../../assets/images/burgerBottom.png";

const BurgerComponent = props => 
  console.log(JSON.stringify(props));
  const BurgerDiv = styled.div`
    width: 500px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
  `;
  return (
    <BurgerDiv>
      props.burger.map(burgerItem => 
        console.log(burgerItem);
        const imgSrc = burgerItem.img;
        console.log(imgSrc);
        return <img key=burgerItem.id src=imgSrc />;
      )
    </BurgerDiv>
  );
;

export default BurgerComponent;

道具如下图所示


  "burger":[
    
      "type":"top",
      "img":"burgerTop",
      "value":1,
      "id":"sss2",
      "addable":false
    ,
    
      "type":"bottom",
      "img":"burgerBottom",
      "value":1,
      "id":"aaa7",
      "addable":false
    
  ]

但图像路径不是从导入中获取的。

不知道我做错了什么。

请帮忙。

【问题讨论】:

【参考方案1】:

img 的源属性应该是 URL 或 base64 字符串。您的 burger 道具没有这样的源属性。

我注意到您正在从 assets 文件夹导入 burgerTopburgerBottom。也许你可以像这样使用这些图像:

props.burger.map(burgerItem => 
        const imgSrc = burgerItem.img === "burgerTop" ? burgerTop : burgerBottom ;
        return <img key=burgerItem.id src=imgSrc />;
      )

【讨论】:

但是数组中的图像会多一些,我会将其添加到顶部,而不是此解决方案的工作原理。 尝试将图像的 URL 存储在您的道具中。

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

如何在本机反应中显示相机胶卷图像文件名列表

在我的应用程序中使用简单适配器未在 ListView 上显示图像

嵌套映射未在jsx反应中显示数据

React Native Image 未在 iOS 上显示

反应本机选择器未在android上显示

反应开发工具未在 Chrome 浏览器中加载