如何在 React 的 render() 中包含 Font Awesome 图标

IT技术 reactjs font-awesome
2021-04-12 07:39:03

每当我尝试在 React 中使用 Font Awesome 图标时render(),它都不会显示在结果网页上,尽管它可以在普通 HTML 中工作。

render: function() {
    return <div><i class="fa fa-spinner fa-spin">no spinner but why</i></div>;
}

这是一个活生生的例子:http : //jsfiddle.net/pLWS3/

错在哪里?

6个回答

如果您不熟悉 React JS并使用create-react-app cli命令创建应用程序,请运行以下 NPM 命令以包含最新版本的 font-awesome。

npm install --save font-awesome

将 font-awesome 导入到您的 index.js 文件中。只需将以下行添加到您的 index.js 文件中

import '../node_modules/font-awesome/css/font-awesome.min.css'; 

或者

import 'font-awesome/css/font-awesome.min.css';

不要忘记使用className作为属性

 render: function() {
    return <div><i className="fa fa-spinner fa-spin">no spinner but why</i></div>;
}
这实际上是最能澄清最初问题的答案。
2021-05-28 07:39:03
但是通过这种方式,当我们添加像 <i className="far fa-heart"></i> 这样的图标时,它不会呈现。但是如果我们添加 <i className="fa fa-heart"></i> 它呈现。为什么 ?
2021-06-15 07:39:03
只是想注意,使用create-react-app设置,您不需要包含../node_modules/在路径中...... import 'font-awesome/css/font-awesome.min.css';有效:)
2021-06-19 07:39:03
@ThidasaParanavitharana<i className="far fa-heart"></i>仅适用于 font-awesome v5。此解决方案安装 font-awesome v4
2021-06-20 07:39:03
此外,当我<i className="fa fa-heart-o"> </i>在 fontawesome 4.7 中没有使用任何东西有谁知道为什么?
2021-06-20 07:39:03

React 使用className属性,就像 DOM。

如果您使用开发版本,并查看控制台,则会出现警告。您可以在 jsfiddle 上看到这一点。

警告:未知的 DOM 属性类。你是说 className 吗?

是否可以使用 reactjs 15.6 我添加了链接 index.html <link rel="shortcut icon" href=" maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/... "> 但无法工作
2021-06-10 07:39:03

https://github.com/FortAwesome/react-fontawesome

安装 fontawesome 和 react-fontawesome

$ npm i --save @fortawesome/fontawesome
$ npm i --save @fortawesome/react-fontawesome
$ npm i --save @fortawesome/fontawesome-free-solid
$ npm i --save @fortawesome/fontawesome-free-regular
$ npm i --save @fortawesome/fontawesome-svg-core

然后在你的组件中

import React, { Component } from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faCheckSquare, faCoffee } from '@fortawesome/fontawesome-free-solid'
import './App.css';

class App extends Component {
  render() {
    return (
      <div className="App">
        <h1>
          <FontAwesomeIcon icon={faCoffee} />
        </h1>
      </div>
    );
  }
}

export default App;
你真的需要这个吗:@fortawesome/fontawesome-free-regular因为你的例子中没有使用它。
2021-05-22 07:39:03
伟大的!只需要修改这个import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'FontAwesomeIcon 不再是默认导出。
2021-06-12 07:39:03
@gabeno 嘿不,这只是一个例子。这应该只是记住/告诉你你也可以使用另一个。但是谢谢提示,我应该添加评论。
2021-06-16 07:39:03

您还可以使用react-fontawesome图标库。这是链接:react-fontawesome

从 NPM 页面,只需通过 npm 安装:

npm install --save react-fontawesome

需要module:

var FontAwesome = require('react-fontawesome');

最后,使用<FontAwesome />组件并传入属性来指定图标和样式:

var MyComponent = React.createClass({
  render: function () {
    return (
      <FontAwesome
        className='super-crazy-colors'
        name='rocket'
        size='2x'
        spin
        style={{ textShadow: '0 1px 0 rgba(0, 0, 0, 0.1)' }}
      />
    );
  }
});

不要忘记将字体很棒的 CSS 添加到 index.html:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">

@Amituuush 通过 NPM“安装”FA(目前)并没有把它放在需要的地方。您必须始终确保将其复制到相应的public文件夹并src手动添加正确的样式表
2021-05-29 07:39:03
新的 CDN 链接:<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
2021-06-02 07:39:03
react-fontawesome 的作者在这里。您需要以某种方式在您的应用程序中包含样式/字体,无论是使用 CDN 版本还是使用 WebPack 之类的东西,或者只是链接到下载的版本。这个库的目标是不要强迫你使用像 WebPack 这样的工具
2021-06-03 07:39:03
不要忘记将 Font Awesome css 添加到您的索引中: <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
2021-06-04 07:39:03
如果通过 npm 安装,还需要包含 CDN 吗?
2021-06-21 07:39:03
npm install --save-dev @fortawesome/fontawesome-free

在 index.js 中

import '@fortawesome/fontawesome-free/css/all.min.css';

然后使用如下图标:

import React, { Component } from "react";

class Like extends Component {
  state = {};
  render() {
    return <i className="fas fa-heart"></i>;
  }
}

export default Like;
这是我想要的确切答案。谢谢!
2021-06-17 07:39:03