以下是我的 Greeter.jsx 文件:
import React, {Component} from 'react';
import cssModules from 'react-css-modules';
import {Button} from 'react-bootstrap';
import styles from './Greeter.css';
const option = {
'allowMultiple': true
};
class Greeter extends Component{
render() {
return (
<div styleName='root root-child'>
<h1>Welcome to React Devops.</h1>
<p styleName="para">This is an amazing para.</p>
<p>Hot module reload.</p>
<Button bsStyle="primary">Test</Button>
</div>
);
}
}
export default cssModules(Greeter, styles, option);
以下是我的main.js文件:
import React from 'react';
import {render} from 'react-dom';
import Greeter from './Greeter';
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/css/bootstrap-theme.min.css';
import './main.css';
render(<Greeter />, document.getElementById('root'));
由于使用了postcss-modules和react-css-modules来隔离组件内的选择器,所以当文件加载时,类名会变成类似于_3lmHzYQ1tO8xPJFY8ewQax的东西。
例子:
<div class="_3lmHzYQ1tO8xPJFY8ewQax _32vj3squi8uWPfEu4ZzyBZ" data-reactid=".0"></div>
以下是 react-bootstrap 如何给我输出:
<button class="btn btn-primary"></button>
由于我使用的是bsStyle(react-bootstrap)而不是styleName(react-css-modules),因此无法将bootstrap css样式应用于该元素,因此该元素未被隔离。
是否有一种方法可以通过将react-bootstrap的类隔离来匹配postcss-modules生成的输出?
谢谢您的期待。