私はReactプロジェクトでFont Awesome 5 Pro(ライセンスを持っています)を使用しようとしています、そして [〜#〜] api [ 〜#〜] できる限りのことですが、まだ問題が解決していません。
私のプロジェクトでは、npmを使用してfontawesome、fontawesome-common-types、fontawesome-pro-light、fontawesome-pro-regular、fontawesome-pro-solid、react-fontawesomeをインストールしました。これらのフォルダはすべて、node_modules/@ fortawesome /ディレクトリにあります
私のApp.jsには、これらのインポートがあります(これはファイル全体ではなく、関連するスニペットのみです)。
import fontawesome from '@fortawesome/fontawesome';
import FontAwesomeIcon from '@fortawesome/react-fontawesome';
import {faSpinnerThird, faCircle} from '@fortawesome/fontawesome-pro-regular/';
fontawesome.library.add(faSpinnerThird, faCircle);
次に、このコードを持つ別のコンポーネントSpinner.jsがあります。
import React from 'react';
import FontAwesomeIcon from '@fortawesome/react-fontawesome';
const spinner = () => (
<div className="fa-layers fa-fw">
<FontAwesomeIcon icon="circle" color="#ddd" />
<FontAwesomeIcon icon="spinner-third" color="#aaa" spin />
</div>
);
export default spinner;
別のコンポーネントでは、Spinnerコンポーネントをインポートして条件付きでレンダリングしていますが、レンダリングされると、ブラウザーコンソールに次のエラーが表示されます。
Could not find icon
Object { prefix: "fas", iconName: "circle" }
Could not find icon
Object { prefix: "fas", iconName: "spinner-third" }
私はReactにかなり慣れていませんが、私はthinkFontAwesomeのReact APIの指示を正しく実行しました。私が間違っているかもしれないアイデアはありますか?
問題はデフォルトでプレフィックスがfas(Font Awesome Solid)であるためだと思います。
_<FontAwesomeIcon icon="circle" color="#ddd" />
_
fasでcircle
アイコンを探していますが、_fontawesome-pro-regular
_のfaCircleを使用します
_import {faSpinnerThird, faCircle} from '@fortawesome/fontawesome-pro-regular/';
_
だからあなたは次のようなものを書きたいと思います
_<FontAwesomeIcon icon={["far", "circle"]} color="#ddd" />
_
また、ライブラリのプレフィックスが何であるかわからない場合は、
fontawesome.icon(faPlus).abstract
次のようなオブジェクトが得られます。
_[{
"tag": "svg",
"attributes": {
"data-prefix": "fa",
"data-icon": "user",
"class": "svg-inline--fa fa-user fa-w-16",
"role": "img",
"xmlns": "http://www.w3.org/2000/svg",
"viewBox": "0 0 512 512"
},
"children": [
{
"tag": "path",
"attributes": {
"fill": "currentColor",
"d": "M96…112z"
}
}
]
}]
_
私はそれを考え出した!
デフォルトでは、FontAwesomeIconコンポーネントは「fas」プレフィックスを使用します(Font Awesome Solidの場合)。上記のエラーコードで確認できます。しかし、/font-awesome-pro-regular/
ディレクトリからRegularの重みをロードしようとしました。
次のように、正しい接頭辞を使用するようにFontAwesomeIconコンポーネントを変更しました。
<FontAwesomeIcon icon={["far", "circle"]} color="#ddd" />
そして今、それは期待どおりに動作します。
App.jsを変更して各アイコンを個別に含めます。Iconオブジェクトを分解している可能性があります。
import fontawesome from '@fortawesome/fontawesome';
import FontAwesomeIcon from '@fortawesome/react-fontawesome';
import faSpinnerThird from '@fortawesome/fontawesome-pro-regular/faSpinnerThird';
import faCircle from '@fortawesome/fontawesome-pro-regular/faCircle';
fontawesome.library.add(faSpinnerThird, faCircle);
これは、次のAPI提案に従っています: https://www.npmjs.com/package/@fortawesome/react-fontawesome#build-a-library-to-reference-icons-throughout-your-app-more -便利