React 无法渲染字体真棒图标

Posted

技术标签:

【中文标题】React 无法渲染字体真棒图标【英文标题】:React cannot render font awesome icon 【发布时间】:2021-12-13 01:04:11 【问题描述】:

我在我的项目中使用了字体很棒的购物车图标。但由于某种原因,该图标没有在我的环境中呈现。

这是我的 index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta
      name="description"
      content="Web site created using create-react-app"
    />
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-YWzhKL2whUzgiheMoBFwW8CKV4qpHQAEuvilg9FAn5VJUDwKZZxkJNuGM4XkWuk94WCrrwslk8yWNGmY1EduTA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
    <title>ProShop</title>
  </head>
  <body>
    <noscript>You need to enable javascript to run this app.</noscript>
    <div id="root"></div>
  </body>
</html>

这是我目前在 Nav.link 中使用的 header.js 文件,没有呈现任何用户或购物车图标。

import React from 'react'
import  Navbar, Nav, Container, Row  from 'react-bootstrap'

function Header() 
    return (
        <header>
            <Navbar bg="dark" variant="dark" expand="lg" collapseOnSelect>
                <Container>
                    <Navbar.Brand href="/">ProShop</Navbar.Brand>
                    <Navbar.Toggle aria-controls="basic-navbar-nav" />
                    <Navbar.Collapse id="basic-navbar-nav">
                        <Nav className="mr-auto">
                        <Nav.Link href="/cart"><i className="fas fa-shopping-cart">Cart</i></Nav.Link>
                        <Nav.Link href="/login"><i className="fas fa-user">Login</i></Nav.Link>
                        
                        </Nav>
                    </Navbar.Collapse>
                </Container>
            </Navbar>
        </header>
    )


export default Header

【问题讨论】:

【参考方案1】:

类名className="fas fa-user"有错别字,应该是className="fa fa-user"

【讨论】:

不,它是正确的。请查看文档【参考方案2】:

不要在你的链接标签中使用字体真棒css的完整性属性

这应该可以工作

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

【讨论】:

是的,它有效,但为什么我需要删除完整性属性?【参考方案3】:

据我所知,您应该使用其中一种方法将 fontawesome 导入您的项目https://fontawesome.com/start

我个人更喜欢网络字体https://fontawesome.com/v5.15/how-to-use/on-the-web/setup/hosting-font-awesome-yourself

很容易导入

只需下载存档 将内容导出到您的项目中(/src 文件夹) 将all.min.css 导入您的App.js 享受

【讨论】:

以前我只使用 CDN 版本的 font-swesome 并且它曾经工作正常,但不知道为什么它不起作用,Sunil 的回答对我有用但我不明白为什么我需要删除完整性吗? 好吧,我从来没有使用过&lt;link /&gt; 将某些东西导入 React,所以不能说为什么它不起作用,抱歉。

以上是关于React 无法渲染字体真棒图标的主要内容,如果未能解决你的问题,请参考以下文章

尝试根据当前状态有条件地渲染 react-fontawesome 图标

字体真棒图标未在 Phonegap iOS 应用程序中呈现

React 图标动态生成字体真棒组件

React 字体真棒图标在生产中更大

无法显示字体真棒图标?

react-native-vector-icons字体真棒和轻型版本