Почему не отображаются мои глифоциты с реакционным бутстрапом?

Я использую React Bootstrap Glyphicon, но ни один из глификонов не появляется. Вот мой код:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Global from './components/Global';

ReactDOM.render(
    <Global />, 
    document.getElementById('root')
);

Global.js

import React, { Component } from 'react';
import { FormGroup, FormControl, InputGroup, Glyphicon } from 'react-bootstrap';

class Global extends Component {
    render() {
        return(
          <div>
            <h2> Book Explorer!</h2>
              <FormGroup>
              <InputGroup>
                <FormControl
                  type="text"
                  placeholder="Search for a book"
                />
              <InputGroup.Addon>
                <Glyphicon glyph="search"></Glyphicon>
              </InputGroup.Addon>
            </InputGroup>
            </FormGroup>
          </div>
        )
    }
}

export default Global;

Здесь мой файл package.json:

{
  "name": "setup",
  "version": "1.0.0",
  "babel": {
    "presets": [
      "es2015",
      "react"
    ]
  },
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack",
    "start": "webpack-dev-server"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.22.1",
    "babel-loader": "^6.2.10",
    "babel-polyfill": "^6.22.0",
    "babel-preset-es2015": "^6.22.0",
    "babel-preset-react": "^6.24.1",
    "react": "^15.5.4",
    "react-bootstrap": "^0.31.0",
    "react-dom": "^15.5.4",
    "webpack": "^1.14.0",
    "webpack-dev-server": "^1.16.2"
  }
}

Ответ 1

Это связано с тем, что Bootstrap использует шрифт Gylphicon Halflings для отображения своих глификонов. Bootstrap CSS должен быть явно включен, поскольку он импортирует глификоны, иначе глификоны не появятся. Вы можете добавить файл bootstrap.min.css в свой index.html, который импортирует его для вас:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

В этой проблеме возникла проблема поднятая на GitHub. Он явно не сказал, что вам нужно включить Bootstrap CSS, и я столкнулся с этим вопросом раньше. Вы должны включить файл CSS, иначе глификоны не будут импортированы, а ваши компоненты не будут отображаться.

Ответ 2

Я полагаю, что реакция-бутстрап не включает компонент глификонов (я проверил там компоненты: https://react-bootstrap.github.io/components/alerts/)

Таким образом, вам нужно будет добавить глификоны поверх пакетаact-bootstrap:

В файле index.html добавьте следующую строку:

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">

Это должно решить проблему без повторного импорта всего загрузочного CSS.