【问题标题】:Font Awesome icon in ReactReact 中的 Font Awesome 图标
【发布时间】:2021-05-04 17:59:53
【问题描述】:

当使用字符串作为图标参数的值时,我无法让 Font Awesome 图标正常工作。

这个工作:

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faCoffee } from '@fortawesome/free-solid-svg-icons'

 <FontAwesomeIcon icon={faCoffee} />

但事实并非如此:

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';

<FontAwesomeIcon icon="coffee" />

根据这个documentation 它应该。 但我是 React 新手,所以可能会遗漏一些东西。

使用 JavaScript。使用 react cli 创建的项目。

包.json:

{
  "name": "test",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^1.2.34",
    "@fortawesome/free-brands-svg-icons": "^5.15.2",
    "@fortawesome/free-regular-svg-icons": "^5.15.2",
    "@fortawesome/free-solid-svg-icons": "^5.15.2",
    "@fortawesome/react-fontawesome": "^0.1.14",
    "@testing-library/jest-dom": "^5.11.9",
    "@testing-library/react": "^11.2.3",
    "@testing-library/user-event": "^12.6.2",
    "font-awesome": "^4.7.0",
    "node-sass": "^4.14.1",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-metismenu": "^1.4.0",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.1",
    "rsuite": "^4.8.8",
    "web-vitals": "^0.2.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

“不工作”是指图标在页面上不可见,并且控制台出现错误:“找不到图标 {prefix: "fas", iconName: "coffee"}"

【问题讨论】:

  • 首先,请明确您使用的是 JS 还是 TypeScript。然后请详细说明“不工作”的含义。第三,请分享您正在使用的react-fontawesome 的版本(来自package.json)。谢谢!
  • 我更新了信息。谢谢。

标签: reactjs font-awesome


【解决方案1】:

您需要像这样导入libraryimport { library } from '@fortawesome/fontawesome-svg-core'

然后添加您要使用的图标。

import { faCoffee } from '@fortawesome/free-solid-svg-icons'

library.add(faCoffee /*, faCheckSquare, etc*/)

在此之后,您应该可以将图标用作“咖啡”。如果您没有将图标添加到库中,它们将不会包含在包中,因此会出现错误。

【讨论】:

  • 那行得通。谢谢你。但是,这意味着对于要使用的每个图标,我需要将其添加到该库对象中。有什么技巧可以一次添加所有这些吗?或者这是个坏主意?现在我想我会坚持导入字体很棒的 css 样式并使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 2020-10-07
  • 2014-05-31
  • 1970-01-01
  • 2019-02-05
  • 2019-12-31
  • 2019-05-04
相关资源
最近更新 更多