Bootstrap 类 在 ReactJS 组件中不起作用
Bootstrap classes do not work in ReactJS component
我刚开始学习使用 ReactJS 来渲染视图,但是我发现如果我直接将属性插入到 ReactJS 中,bootstrap CSS 类 不会按预期工作成分。例如,在下面的代码中,我希望生成一个带有 类 的面板:panel-default 和 panel-heading;但是,生成的视图不带有 bootstrap 样式。如果可能的话,我想知道为什么以及如何修复。请注意,我已经编译了我的 ReactJS 代码,并将编译后的 JS 包含在 HTML 代码中(见底部)。
var taxonGroups = {
identifier: 'ABC-x981',
sources: [
{segmentName: 'segment1', length: 1090},
{segmentName: 'segment2', length: 98},
{segmentName: 'segment3', length: 2091},
{segmentName: 'segment4', length: 1076},
],
fields: ['Taxon Name', 'Taxon ID', 'Taxon source'],
collectionDate: '2001-09-10'
};
var Taxon = React.createClass({
render: function() {
return (
<div class="panel panel-default"> <div class="panel-heading"><p>{this.props.data.identifier}</p></div>
<table class="table table-bordered table-striped table-hover">
{
this.props.data.sources.map(function(source) {
return <Segment name={source.segmentName} length={source.length}/>
})
}
</table>
</div>
);
}
});
var Segment = React.createClass({
render: function() {
return <tr><td>{this.props.name}</td><td>{this.props.length}</td></tr>
}
});
React.render(<Taxon data={taxonGroups} />, document.getElementById('container'));
HTML代码:
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="bower_components/bootstrap/dist/css/bootstrap-theme.min.css" rel="stylesheet">
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/react/react.js"></script>
<script src="bower_components/react/JSXTransformer.js"></script>
<title>reactJS 3 - Rendering data with bootstrap styles</title>
</head>
<body>
<span>Is there anything?</span>
<div id="container">
</div>
<div class="panel panel-default">
<div class="panel-heading">This is Panel Heading!</div>
<div class="panel-body">
This is panel body
</div>
</div>
<script src="scripts/ReactJS/build/taxon.js"></script>
</body>
</html>
在 React 中,属性是 className
,而不是 class
。因此,例如,而不是
<div class="panel panel-default">
你应该
<div className="panel panel-default">
通过将其设置为 class
,React 会忽略该属性,因此生成的 HTML 不包含 CSS 需要的 类。
如果您 运行 通过 compiler 预期 HTML,那确实是您得到的。
我在学习 React 教程时遇到了类似的问题,我正在写
<div classname="my bootstrap code here">
而不是
<div className="my bootstrap code here">
className 应该是 jsx 的驼峰式。希望这会有所帮助:).
我刚开始学习使用 ReactJS 来渲染视图,但是我发现如果我直接将属性插入到 ReactJS 中,bootstrap CSS 类 不会按预期工作成分。例如,在下面的代码中,我希望生成一个带有 类 的面板:panel-default 和 panel-heading;但是,生成的视图不带有 bootstrap 样式。如果可能的话,我想知道为什么以及如何修复。请注意,我已经编译了我的 ReactJS 代码,并将编译后的 JS 包含在 HTML 代码中(见底部)。
var taxonGroups = {
identifier: 'ABC-x981',
sources: [
{segmentName: 'segment1', length: 1090},
{segmentName: 'segment2', length: 98},
{segmentName: 'segment3', length: 2091},
{segmentName: 'segment4', length: 1076},
],
fields: ['Taxon Name', 'Taxon ID', 'Taxon source'],
collectionDate: '2001-09-10'
};
var Taxon = React.createClass({
render: function() {
return (
<div class="panel panel-default"> <div class="panel-heading"><p>{this.props.data.identifier}</p></div>
<table class="table table-bordered table-striped table-hover">
{
this.props.data.sources.map(function(source) {
return <Segment name={source.segmentName} length={source.length}/>
})
}
</table>
</div>
);
}
});
var Segment = React.createClass({
render: function() {
return <tr><td>{this.props.name}</td><td>{this.props.length}</td></tr>
}
});
React.render(<Taxon data={taxonGroups} />, document.getElementById('container'));
HTML代码:
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="bower_components/bootstrap/dist/css/bootstrap-theme.min.css" rel="stylesheet">
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/react/react.js"></script>
<script src="bower_components/react/JSXTransformer.js"></script>
<title>reactJS 3 - Rendering data with bootstrap styles</title>
</head>
<body>
<span>Is there anything?</span>
<div id="container">
</div>
<div class="panel panel-default">
<div class="panel-heading">This is Panel Heading!</div>
<div class="panel-body">
This is panel body
</div>
</div>
<script src="scripts/ReactJS/build/taxon.js"></script>
</body>
</html>
在 React 中,属性是 className
,而不是 class
。因此,例如,而不是
<div class="panel panel-default">
你应该
<div className="panel panel-default">
通过将其设置为 class
,React 会忽略该属性,因此生成的 HTML 不包含 CSS 需要的 类。
如果您 运行 通过 compiler 预期 HTML,那确实是您得到的。
我在学习 React 教程时遇到了类似的问题,我正在写
<div classname="my bootstrap code here">
而不是
<div className="my bootstrap code here">
className 应该是 jsx 的驼峰式。希望这会有所帮助:).