Я использую пример jPlayer в приложении create-реагировать. Вот CodeSandbox, показывающий проблему рендеринга шрифта-офигенного значка в виде блоков.
![Edit peaceful-heisenberg-d59nz](https://codesandbox.io/static/img/play-codesandbox.svg)
Значки отображаются с помощью css правил, определяющих содержимое в виде юникода для тегов <i>
с классом fa
.
Я установил зависимость от font-awesome, которая была в примере jPlayer package.json
. Затем я реализовал компонент AudioPlayer и использовал скины, предоставленные jPlayer. Компонент визуализируется, но значки - это все прямоугольники, и я вижу содержимое юникода в источнике.
Вот пример архитектуры проекта. Это кнопка воспроизведения в /src/AudioPlayer/AudioPlayer.jsx
.
<Play><i className="fa">{/* Icon set in css */}</i></Play>
Затем AudioPlayer импортируется в App.jsx
. App.jsx
импортирует таблицу стилей, которая имеет соответствующее правило:
.fa, .fas, .far {
font-family: FontAwesome !important;
}
App.jsx
затем обрабатывается index.js
. Внутри index.js
мы импортируем таблицы стилей аудиоплеера:
// Styles the jPlayer to look nice
import 'react-jplayer/dist/css/skins/sleek.min.css';
// Styles Play/Pause/Mute etc when icons (<i />) are used for them
import 'react-jplayer/dist/css/controls/iconControls.min.css';
Правило для кнопки воспроизведения в iconControls.css
выглядит следующим образом:
.jp-jplayer .jp-icon-controls .jp-play i:before {
content: "\F04B";
font-family: 'Font Awesome\ 5 Free';
font-weight: 900;
}
, затем в пределах index.html
' s head
Я включаю удивительный шрифт CDN в качестве последней попытки исправить визуализируемые блоки вместо значков шрифтов.