导入图标动态反应 fontawesome
import icons dynamically react fontawesome
我在 React js 项目中使用 FontawesomeIcon,图标的名称来自数据库。我想动态地从@fortawesome/free-solid-svg-icons导入来自数据库的图标
import React, { Component } from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import {faImage} from "@fortawesome/free-solid-svg-icons";
export class Features extends Component {
render() {
return (
<div id="features" className="text-center">
<div className="container-fluid">
<div className="features-listing">
{this.props.data.map((item, index) => (
<div key={`${index}`}>
{" "}
<FontAwesomeIcon icon={item.icon} />
<h3>{item.title}</h3>
</div>
))}
</div>
</div>
</div>
);
}
}
export default Features;
只需将 Fontawesome
CDN 添加到您的 HTML Header
并使用您想要的任何图标,
在反应中会是这样的:
<i className={object.ico}><i/>
Object.ico
应该是一个包含图标名称的字符串,如 far fa-xyz
在App.js中可以导入所有的图标,如在this post中看到的,像这样:
import {library} from '@fortawesome/fontawesome-svg-core';
import * as Icons from '@fortawesome/free-solid-svg-icons';
const iconList = Object.keys(Icons)
.filter((key) => key !== 'fas' && key !== 'prefix')
.map((icon) => Icons[icon]);
library.add(...iconList);
然后,在组件内部,只导入 FontAwesomeIcon 并使用它们:
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
<FontAwesomeIcon icon="times" />
实际上有一个更好的方法不用遍历所有图标(@Andrei Rosu 的解决方案),你可以导出整个 brand 和 solid 包裹:
import { library } from '@fortawesome/fontawesome-svg-core'
import { fab } from '@fortawesome/free-brands-svg-icons'
import { fas } from '@fortawesome/free-solid-svg-icons'
// This exports the whole icon packs for Brand and Solid.
library.add(fab, fas)
并使用它们:
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
<FontAwesomeIcon icon={['fab', 'apple']} /> // any icon from Brand.
<FontAwesomeIcon icon={['fas', 'coffee']} /> // any icon from Solid.
我在 React js 项目中使用 FontawesomeIcon,图标的名称来自数据库。我想动态地从@fortawesome/free-solid-svg-icons导入来自数据库的图标
import React, { Component } from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import {faImage} from "@fortawesome/free-solid-svg-icons";
export class Features extends Component {
render() {
return (
<div id="features" className="text-center">
<div className="container-fluid">
<div className="features-listing">
{this.props.data.map((item, index) => (
<div key={`${index}`}>
{" "}
<FontAwesomeIcon icon={item.icon} />
<h3>{item.title}</h3>
</div>
))}
</div>
</div>
</div>
);
}
}
export default Features;
只需将 Fontawesome
CDN 添加到您的 HTML Header
并使用您想要的任何图标,
在反应中会是这样的:
<i className={object.ico}><i/>
Object.ico
应该是一个包含图标名称的字符串,如 far fa-xyz
在App.js中可以导入所有的图标,如在this post中看到的,像这样:
import {library} from '@fortawesome/fontawesome-svg-core';
import * as Icons from '@fortawesome/free-solid-svg-icons';
const iconList = Object.keys(Icons)
.filter((key) => key !== 'fas' && key !== 'prefix')
.map((icon) => Icons[icon]);
library.add(...iconList);
然后,在组件内部,只导入 FontAwesomeIcon 并使用它们:
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
<FontAwesomeIcon icon="times" />
实际上有一个更好的方法不用遍历所有图标(@Andrei Rosu 的解决方案),你可以导出整个 brand 和 solid 包裹:
import { library } from '@fortawesome/fontawesome-svg-core'
import { fab } from '@fortawesome/free-brands-svg-icons'
import { fas } from '@fortawesome/free-solid-svg-icons'
// This exports the whole icon packs for Brand and Solid.
library.add(fab, fas)
并使用它们:
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
<FontAwesomeIcon icon={['fab', 'apple']} /> // any icon from Brand.
<FontAwesomeIcon icon={['fas', 'coffee']} /> // any icon from Solid.