微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

twitter-bootstrap – 如何使用反应引导与postcss模块和反应css模块?

以下是我的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>

以下是反应引导如何给我输出

<button class="btn btn-primary"></button>

因为我使用bsstyle(react-bootstrap)而不是styleName(react-css-modules),所以我没有被隔离,因此我不能将引导CSS样式应用于元素.

有没有办法通过隔离其类来匹配postcss-modules生成输出,我可以使用react-bootstrap?

感谢预期.

解决方法

在使用与css-module的反应引导时,我也面临着同样的问题.在我的情况下,它是Tabs组件.它看起来很黑,但为我工作.我用一个类包装了组件,在类中我写了scss,如下所示
// myComponent.scss
.myComponent {
      :global {
        .nav-tabs {
           li {
             //my custom css for tabs switcher
           }
        }
      }
    }

和MyComponent.js是

const tabsInstance = (
  <Tabs defaultActiveKey={1} animation={false} id='noanim-tab-example'>
    <Tab eventKey={1} title='Sign up'>Tab 1 content</Tab>
    <Tab eventKey={2} title='Login'>Tab 2 content</Tab>
  </Tabs>
)

export const MyComponent = () => (
  <div className={classes.myComponent}>
    { tabsInstance }
  </div>
)

export default MyComponent

希望这是你正在寻找的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐