How to include a Font Awesome icon in React's render()

前端 未结 15 1626
刺人心
刺人心 2020-12-04 06:30

Whenever I try to use a Font Awesome icon in React\'s render(), it isn\'t displayed on the resulting web page although it works in normal HTML.

         


        
相关标签:
15条回答
  • 2020-12-04 06:49

    I was experienced this case; I need the react/redux site that should be working perfectly in production.

    but there was a 'strict mode'; Shouldn't lunch it with these commands.

    yarn global add serve
    serve -s build
    

    Should working with only click the build/index.html file. When I used fontawesome with npm font-awesome, it was working in development mode but not working in the 'strict mode'.

    Here is my solution:

    public/css/font-awesome.min.css
    public/fonts/font-awesome.eot 
    *** other different types of files(4) ***
    *** I copied these files for node_module/font-awesome ***
    *** after copied then can delete the font-awesome from package.json ***
    

    in public/index.html

    <link rel="stylesheet" href="%PUBLIC_URL%/css/font-awesome.min.css">
    

    After all of above steps, the fontawesome works NICELY!!!

    0 讨论(0)
  • 2020-12-04 06:54

    In case you are looking to include the font awesome library without having to do module imports and npm installs, put this in the head section of your React index.html page:

    public/index.html (in head section)

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"/>
    

    Then in your component (such as App.js) just use standard font awesome class convention. Just remember to use className instead of class:

    <button className='btn'><i className='fa fa-home'></i></button>

    0 讨论(0)
  • 2020-12-04 06:58

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

    install 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
    

    then in your component

    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;
    
    0 讨论(0)
  • 2020-12-04 06:59

    React uses the className attribute, like the DOM.

    If you use the development build, and look at the console, there's a warning. You can see this on the jsfiddle.

    Warning: Unknown DOM property class. Did you mean className?

    0 讨论(0)
  • 2020-12-04 06:59

    You can also use the react-fontawesome icon library. Here's the link: react-fontawesome

    From the NPM page, just install via npm:

    npm install --save react-fontawesome
    

    Require the module:

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

    And finally, use the <FontAwesome /> component and pass in attributes to specify icon and styling:

    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)' }}
          />
        );
      }
    });
    

    Don't forget to add the font-awesome CSS to index.html:

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

    0 讨论(0)
  • 2020-12-04 07:00
    npm install --save font-awesome
    
    import 'font-awesome/css/font-awesome.min.css';
    

    then

    <i className="fa fa-shopping-cart" style={{fontSize:24}}></i>  
            <span className="badge badge-danger" style={{position:"absolute", right:5, top:5}}>number of items in cart</span>
    
    0 讨论(0)
提交回复
热议问题