SarinaDu 2018-10-16 08:21 采纳率: 44.4%
浏览 813
已采纳

import m1 from './img/1.png' m1为undefined

环境:react^16.5.2+typescript3.1.2+url-loader^1.1.2

webpack.config.js

 module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpg|gif|svg|ico|cur)(\?[=a-z0-9]+)?$/,
        use: [{
          loader: 'url-loader',
          options: {
            limit: 8192,
            name: 'images/[hash:6].[ext]',
            fallback: 'file-loader',
            publicPath: './dist/'
          }
        }]
      }
    ]
  }
}

test.tsx

 import * as React from 'react'
import m1 from './img/1.png'

import './index.less'
export default class Test extends React.Component<any, any> {
    constructor(props: any) {
        super(props)
    }
    componentDidMount () {
        console.log('图片地址') 
        console.log(m1) // undefined
    }


    render() {
        return (
            <div className='test'>
                <span>图片引入测试</span>
                <img src={m1} alt='test-m1' title='test-m1'/>
            </div>
        )
    }
} 

首先我保证import m1 from './img/1.png'的路径一没有写错

  • 写回答

3条回答 默认 最新

  • SarinaDu 2018-10-23 03:56
    关注

    问题已解决,在这里自问自答一下希望可以帮助到有相同问题的同学们:主要问题有两点,第一个时图片的导入方式由原来的import m1 from './img/1.png'修改为import * as m1 from './img/1.png',第二点是在webpack.config.js中关于url-loader配置中的publicPath节点,由原来的publicPath: './dist/'修改为publicPath: './',从这里我们知道publicPath会影响项目启动时的资源路径,同时对于第一点为什么要修改为import * as m1 from './img/1.png'我也由疑惑,但是这样确实就可以了。正确源码大家可以通过以下路径访问到:https://github.com/dxiuxiu/react-typescript-urlLoader-fileLoader.git

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类