[英]react-fontawesome not displaying icons
我正在嘗試使用 react-fontawesome 並以在我看來與自述文件完全相同的方式實現它: https ://github.com/danawoodman/react-fontawesome/blob/master/readme.md
import React from 'react';
import FontAwesome from 'react-fontawesome'
...
export default class ComponentName extends React.Component {
render() {
return (
<div>
<div>
<span>
<FontAwesome
className='super-crazy-colors'
name='rocket'
size='2x'
spin
style={{ textShadow: '0 1px 0 rgba(0, 0, 0, 0.1)' }}
/>
SOME TEXT
</span>
</div>
...
</div>
)
}
}
但我在 DOM 中沒有看到圖標。 雖然我確實在 Chrome 開發工具中看到:
<span style="text-shadow:0 1px 0 rgba(0, 0, 0, 0.1);" aria-hidden="true" class="fa fa-rocket fa-2x fa-spin super-crazy-colors" data-reactid=".0.$/=11.0.0.$/=10.$/=10.$/=10"></span>
我覺得應該是一個<i>
標簽。 我嘗試在開發工具的“編輯為 HTML”中將<span>...</span>
更改為<i>...</i>
,但圖標仍然沒有顯示。
我的插件中有 add-module-exports,webpack.config 的預設中有 stage-2。
誰能告訴我我是否遺漏了什么? 除了 react-fontawesome 之外,我還需要其他軟件包來完成這項工作嗎? 我需要導入標准 font-awesome.css 還是加載 font-awesome CDN? 任何幫助將不勝感激,謝謝!
我有同樣的問題。 閱讀他們的Readme.md ,你會看到有這樣的注釋:
注意:此組件不包含任何 Font Awesome CSS 或字體,因此您需要確保以某種方式將它們包含在您的終端中,通過將它們添加到您的構建過程或鏈接到CDN 版本。
所以最簡單的方法是鏈接到你的html中的fontawesome cdn。
<head>
<meta charset="UTF-8">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-
awesome.min.css" rel="stylesheet" integrity="sha384-
wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN"
crossorigin="anonymous">
</head>
運行npm install font-awesome --save
在您的index.js
或App.js
或YourComponent.js
,導入縮小的 CSS 文件。
import 'font-awesome/css/font-awesome.min.css';
正如其他答案所提到的,您需要以某種方式在頁面中包含圖標。 在此處查看react-fontawesome
示例: https : //github.com/danawoodman/react-fontawesome/blob/master/examples/index.html
您可以看到開發人員在第 5 行包含了字體很棒的 CSS。
另外,Font Awesome v5 已經發布,你應該考慮轉向它。 在此處閱讀相關文檔: https : //www.npmjs.com/package/@fortawesome/react-fontawesome
要使用 v5:
安裝依賴:
$ npm i --save @fortawesome/fontawesome
$ npm i --save @fortawesome/react-fontawesome
$ npm i --save @fortawesome/fontawesome-free-solid
然后您的組件可以使用如下圖標:
import ReactDOM from 'react-dom';
import FontAwesomeIcon from '@fortawesome/react-fontawesome'
import { faCoffee } from '@fortawesome/fontawesome-free-solid'
const element = (
<FontAwesomeIcon icon={faCoffee} />
)
ReactDOM.render(element, document.body);
您還可以在您的應用程序中構建一個常用圖標庫,以方便參考。 在此處查看工作代碼: https : //codesandbox.io/s/8y251kv448
有關此處提供的庫函數的更多詳細信息: https : //www.npmjs.com/package/@fortawesome/react-fontawesome#build-a-library-to-reference-icons-throughout-your-app-more-conveniently
這似乎非常適合 React
安裝:
$ yarn add @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons @fortawesome/react-fontawesome
用法:
import ReactDOM from 'react-dom'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faCoffee } from '@fortawesome/free-solid-svg-icons'
const element = <FontAwesomeIcon icon={faCoffee} />
ReactDOM.render(element, document.body)
我工作的唯一示例實際上似乎是最新的並且沒有拋出“無法解決‘反應’錯誤:
https://scotch.io/tutorials/using-font-awesome-5-with-react
import React from "react";
import { render } from "react-dom";
// get our fontawesome imports
import { faHome } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
// create our App
const App = () => (
<div>
<FontAwesomeIcon icon={faHome} />
</div>
);
// render to #root
render(<App />, document.getElementById("root"));
正如@Alee 指出的 Fontaweome 字體不包含在包中。 您必須自己導入它。
安裝 npm font-awesome
包。 如果你使用 npm run npm install font-awesome --save
或者如果你使用 yarn 然后運行yarn add font-awesome
現在,你只需要輸入font-awesome.less
下less
目錄寫import 'font-awesome/less/font-awesome.less'
現在你應該看到你的圖標在工作:)
Font Awesome 現在有一個官方的 React 組件,可以在你的 React 應用程序中使用它們的圖標。
第 1 步:你必須使用像 npm 這樣的包管理器在你的項目中安裝 3 個重要的包:
npm i --save @fortawesome/fontawesome-svg-core
npm install --save @fortawesome/free-solid-svg-icons
npm install --save @fortawesome/react-fontawesome
第 2 步:如果您打算設計圖標樣式,則必須下載這兩個額外的包:
npm install --save @fortawesome/free-brands-svg-icons
npm install --save @fortawesome/free-regular-svg-icons
第 3 步:安裝項目所需的所有包后,現在可以使用圖標了。 像這樣在你的組件中導入這個包:
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
之后,您可以像這樣將圖標導入您的組件(例如使用類為“fas fa-atom”的圖標)
import { faAtom } from '@fortawesome/free-solid-svg-icons'
PS:您可以在一次導入中導入多個圖標,並在每個圖標之間添加一個逗號。
第 4 步:使用導入的圖標
const element = <FontAwesomeIcon icon={faAtom} />
來源: https ://fontawesome.com/v5.15/how-to-use/on-the-web/using-with/react
從包本身導入 fontawesome 樣式而不加載任何外部 css:
import "@fortawesome/fontawesome-svg-core/styles.css"; // import Font Awesome CSS
import { config } from "@fortawesome/fontawesome-svg-core";
config.autoAddCss = false; // Tell Font Awesome to skip adding the CSS automatically since it's being imported above
查看文章以獲取更多信息
我懷疑您還沒有導入 FontAwesome 需要的 CSS - 從 FontAwesome 的網站下載縮小的 CSS 文件並將其導入您的 app.scss 文件或您導入其他樣式表的任何其他地方。
react-fontawesome 庫正在幫助您創建類名類似於“向上箭頭”的元素,但如果沒有樣式表,您的項目將不知道有與這些類對應的圖標。
最好一次安裝所有東西,然后只導入你想要的圖標,
npm i --save @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons @fortawesome/react-fontawesome @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faSpinner } from '@fortawesome/free-solid-svg-icons';
確保從確切的包中導入圖標,您可以使用ctrl
+ space
使用建議的力量來查找圖標並在導入圖標時更改包。
復制並粘貼到您的 html 中...
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css">
NEXT JS - 如果您使用 NEXT jS,請以這種方式導入樣式
import '../node_modules/@fortawesome/fontawesome-svg-core/styles.css'
嘗試添加
<script src='https://use.fontawesome.com/3bd7769ce1.js'></script>
到您的反應項目中的主 index.html。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.