【问题标题】:Error when importing image dynamically: "Error: Cannot find module './asset/<imageName>.jpg'"动态导入图像时出错:“错误:找不到模块 './asset/<imageName>.jpg'”
【发布时间】:2020-09-01 03:28:09
【问题描述】:

我目前正在尝试根据 JSON 数据给出的路径加载本地图像。数据作为道具传递给我的组件。 由于组件是基于 JSON 数据动态创建的,因此我无法导入图像。所以我试图“要求”他们,但我得到一个错误提示,

“错误:找不到模块'./asset/.jpg'”

如果我手动导入它们,图像加载得很好,所以我相信路径格式正确。

为什么我会出错?我该如何解决?

import React from "react";
import ReactDOM from "react-dom";

function Cell (props){

    return (
    <tr>
        <th>1</th>
        <th><img src= {require(props.image)} /></th>
        <th><div className = "name">{props.name}</div></th>
        <th>
            <a className = "upVote">????</a>
            <a className = "downVote">????</a>
        </th>
        <th className = "count">{props.count}</th>
    </tr>
    );
}

export default Cell;

【问题讨论】:

    标签: javascript reactjs webpack


    【解决方案1】:

    如果你的图片在public文件夹中,那么你可以直接写:

    <img src={props.image} />
    

    <img src="abc.png" />
    

    没有必要使用require

    如果图像和组件在同一目录中,您也可以像这样导入图像:

    import abc from "./abc.jpeg";
    
    <img src={abc} />
    

    <img src={require("./abc.jpeg")} />
    

    【讨论】:

    • 我的图片目前不在公共文件夹中。它在 src 中。将其放在公用文件夹中是否有好处?
    • 如果您想在构建过程之后将这些图像用作静态资产,那么您可以将其放在publicpublic/images 目录中。
    • 感谢您的回复。我将资产移至公用文件夹,但不再出现错误。但是,图像没有显示出来。
    • @Joshua 你能告诉我这个错误吗?顺便说一句,我已经更新了上面的答案。
    • 我没有收到任何错误。相反,图像不会加载 - imgur.com/a/zL3WC6H。也许路径是错误的。我的路径是:“../public/asset/.jpg”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2021-07-04
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多