我正在使用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"
}
}
答案 0 :(得分:16)
这是因为Bootstrap使用字体Gylphicon Halflings来显示其字形。必须明确包含Bootstrap的CSS,因为它会导入glyphicons,否则glyphicons将不会显示。您可以将bootstrap.min.css
文件添加到index.html
,然后为您导入该文件:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
有关此确切问题的问题raised on GitHub。它没有明确表示你需要包含Bootstrap的CSS,我之前遇到过这个问题。您必须包含CSS文件,否则将不会导入glyphicons,您的组件将不会显示任何内容。
答案 1 :(得分:3)
Bootstrap在v4中放弃了Glyphicon支持 https://getbootstrap.com/docs/4.0/migration/#components
答案 2 :(得分:0)
我相信react-bootstrap不包含glyphicons组件, (我已经检查了其中的组件:https://react-bootstrap.github.io/components/alerts/)
因此,您需要在react-bootstrap软件包的顶部添加字形:
在index.html文件中,添加以下行:
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">
这应该可以解决问题,而无需第二次导入整个引导CSS。