React font awesome отображает большую иконку до тех пор, пока не уменьшится

Я использую рендеринг на стороне сервера и рендеринг на стороне клиента (гидрат) с помощью fontawesome, но при рендеринге страницы значок огромен, пока он не масштабируется, а класс правильного размера не добавляется к значку ИЛИ загружается css (я не знаю) .

React font awesome отображает большую иконку до тех пор, пока не уменьшится

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
14
0
3 028
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Как вы уже догадались, это проблема с загрузкой CSS после первоначального рендеринга страницы. Решение, которое я нашел, состоит в том, чтобы либо убедиться, что CSS на сервере отображается на той же странице, что и значок (в зависимости от того, какие фреймворки вы используете для управления таблицами стилей), либо убедиться, что любой файл .css, который вы используете для это загружается до рендеринга HTML. Это можно сделать, убедившись, что тег ссылки для таблицы стилей отображается в верхней части страницы.

ты прав. то, что я делал, - это копирование styles.css из node_modules/@fortawesome/fontawesome/styles.css в мою общую папку (переименованную в fontawesome.css) и использование в моем html <link rel = "stylesheet" href = "%PUBLIC_URL%/css/fontawesome.css"> во второй части, я добавил fontawesome.config.autoAddCss = false;, чтобы не добавлять тот же CSS в голову от клиента рендеринг.

Ron 12.04.2018 06:00
Ответ принят как подходящий

Отключите autoAddCss:

import { library, config } from '@fortawesome/fontawesome-svg-core'
config.autoAddCss = false

Загрузить в CSS прямо в файл SCSS:

@import 'node_modules/@fortawesome/fontawesome-svg-core/styles'

Спасибо. @import '~@fortawesome/fontawesome-svg-core/styles.css'; работал у меня.

Caner Çakmak 10.04.2020 10:02

Пожалуйста, прочтите эту статью:

https://fontawesome.com/how-to-use/on-the-web/other-topics/server-side-rendering

В ответ вам нужно это в вашем макете или глобальной конфигурации:

import { library, config, dom } from '@fortawesome/fontawesome-svg-core' 
config.autoAddCss = false
...

И в своем стиле поставьте это:

<style jsx global>{`
  ...

  @import url('https://fonts.googleapis.com/css?family=Didact+Gothic');

  ${dom.css()}

  ...
`}</style>

Другие вопросы по теме