J'utilise React Bootstrap Glyphicon
component mais aucun des glyphicons n'apparaît. Voici mon code jusqu'à présent:
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;
Voici mon package.json
fichier:
{
"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"
}
}
En effet, Bootstrap utilise la police Gylphicon Halflings pour afficher ses glyphicons. Le CSS de Bootstrap doit être explicitement inclus, car il importe les glyphicons, sinon les glyphicons n'apparaîtront pas. Vous pouvez ajouter le bootstrap.min.css
fichier dans votre index.html
qui l'importe pour vous:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
Il y avait un problème soulevé sur GitHub concernant ce problème exact. Il n'est pas dit explicitement que vous devez inclure le CSS de Bootstrap, et j'ai rencontré ce problème auparavant. Vous devez inclure le fichier CSS, sinon les glyphicons ne seront pas importés et vos composants n'afficheront rien.
Je crois que le react-bootstrap n'inclut pas le composant glyphicons, (j'ai vérifié les composants là-bas: https://react-bootstrap.github.io/components/alerts/ )
Vous devrez donc ajouter des glyphicons au-dessus du paquet react-bootstrap:
Dans le fichier index.html, ajoutez la ligne suivante:
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">
Cela devrait résoudre le problème sans importer une deuxième fois l'ensemble bootstrap css.