4

我正在导入许多 FA 图标:

import { faUsers, faCut, faBullhorn, faPenNib, faCircle, faPalette, faVolumeUp, faSmile, faGrin, faShekelSign, faTv, faUserTie, faFolder, faPaintBrush, faCircleNotch, faSignOutAlt } 
from '@fortawesome/free-solid-svg-icons'

library.add(faUsers, faCut, faBullhorn, faPenNib, faCircle, faPalette, faVolumeUp, faSmile, faGrin, faShekelSign, faTv, faUserTie, faFolder, faPaintBrush, faCircleNotch, faSignOutAlt)

如何声明该列表一次然后重新使用它?它会是一个数组吗?或者一个对象……什么?

我刚在想

const icons = {faUsers, faCut, faBullhorn, faPenNib, faCircle, faPalette, faVolumeUp, faSmile, faGrin, faShekelSign, faTv, faUserTie, faFolder, faPaintBrush, faCircleNotch, faSignOutAlt}

import icons from '@fortawesome/free-solid-svg-icons'

但这当然行不通。我会做什么library.add()

后面那个看起来像物体的东西是import什么?

4

2 回答 2

3

一种解决方案是创建一个新模块来导出您的特定图标。

// icons.js
export {
    faUsers,
    faCut,
    faBullhorn,
    faPenNib,
    faCircle,
    faPalette,
    faVolumeUp,
    faSmile,
    faGrin,
    faShekelSign,
    faTv,
    faUserTie,
    faFolder,
    faPaintBrush,
    faCircleNotch,
    faSignOutAlt
} from '@fortawesome/free-solid-svg-icons';

然后您可以简单地导入您的新模块并使用扩展语法使用它。

// library.js
import {library} from '@fortawesome/fontawesome-svg-core'

import * as icons from './icons';

library.add(...Object.values(icons));
于 2019-05-03T23:25:46.137 回答
1

import并且export被定义为静态可分析的,因此它们不能依赖于运行时信息。import因此,用语句是不可能的。

导入后看起来像的对象称为命名导入,用于从导出项目列表中获取选定项目。例如,fontawesome 将所有图标对象都通过一个文件导出。现在您可以使用 import { ... } 仅导入您需要的项目。

于 2019-05-03T23:11:16.503 回答