Javascript:错误:找不到模块 '../data/icons/table.png'

标签 javascript node.js reactjs template-literals

我试图将图像的路径传递给 react 中的子组件,然后将该路径作为子组件中的源属性提供。当我在 child 中硬编码路径时它有效,但当我使用模板文字时它不起作用。 下面是代码片段。我无法理解为什么模板文字不起作用

import React, {Component} from 'react';


class MenuItem extends Component{

render(){
    // the below 2 lines print exactly the same thing, i.e., string ../data/icons/table.png
    console.log(typeof `${this.props.icon}`, `${this.props.icon}`);
    console.log(typeof "../data/icons/table.png", "../data/icons/table.png");
    return (
    <div className = "sidemenu menu-item">
        <img src={require("../data/icons/table.png")} />   //this works
        <img src={require(`${this.props.icon}`)} />        //Error: Cannot find module '../data/icons/table.png'.
        {this.props.name}
    </div>
    )
}}

最佳答案

如果您以与 API 模块相同的方式使用 bundler (如 webpack 或 yarn),则可以像模块一样加载图像。

import React, {Component} from 'react';
import table from './data/icons/table.png';

class MenuItem extends Component{

render(){
    return (
    <div className = "sidemenu menu-item">
        <img src={table} />     
    </div>
    )
}
}

关于Javascript:错误:找不到模块 '../data/icons/table.png',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50975875/

相关文章:

javascript - 根据用户输入 ,"Uncaught TypeError: Cannot read property ' 调用 get 实体时读取未定义的

javascript - Express.js 到 EJS 部分渲染数据

javascript - 如何发送数字框表情符号 (1️⃣)?

node.js - 在另一个平台(Grails)旁边使用 Node.js

reactjs - React Table 中的水平滚动

javascript - Typescript async/await 转换为 yield 错误

javascript - 替换第 n 次出现的字符串

javascript - jQuery: live ('focus' ) 和 live ('blur' ) 嵌套在命名空间中,在 1.3.2 中不起作用

javascript - XMLHttpRequest() 不发送 FormData() 导致 PHP $_FILES 数组为空并且没有上传文件

javascript - react 无限重渲染,useEffect问题,未触发设置状态