目前,我正在使用以下代码使用Web Pack动态导入某些模块。

我想知道是否有避免切换的方法。
谢谢



import React from 'react'
import iconSend from './icon-send.png'
import iconReload from './icon-reload.png'
import iconDownload from './icon-download.png'
import iconAddDoc from './icon-add-doc.png'
import iconAddAgendaItem from './icon-add-agenda-item.png'

const loadIcon = (src) => {
  switch (src) {
    case 'iconSend':
      return iconSend
    case 'iconReload':
      return iconReload
    case 'iconDownload':
      return iconDownload
    case 'iconAddDoc':
      return iconAddDoc
    case 'iconAddAgendaItem':
      return iconAddAgendaItem
  }
}

const Option = ({id, name, isActive, src}) => {
  return (
    <div>
      <div>
        <img src={loadIcon(src)} alt={name} />
      </div>
    </div>
  )
}

export default Option

最佳答案

可能的方式:

1-使用require并在src中传递图像的确切名称,如下所示:

<img src={require(`./${src}`)} alt={name} />


src应该是:

icon-send.png
icon-reload.png
icon-download.png
icon-add-doc.png
icon-add-agenda-item.png


2-准备一个具有键名和图像的对象,使用该对象直接获取图像。

像这样:

import iconSend from './icon-send.png'
import iconReload from './icon-reload.png'
import iconDownload from './icon-download.png'
import iconAddDoc from './icon-add-doc.png'
import iconAddAgendaItem from './icon-add-agenda-item.png'

let hash = {
    iconSend,
    iconReload,
    iconDownload,
    iconAddDoc,
    iconAddAgendaItem
}

<img src={ hash[src] } alt={name} />

关于javascript - 是否可以从字符串动态加载模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46315972/

10-09 23:49
查看更多