小编Nat*_*teQ的帖子

全局样式覆盖反应组件样式

好吧,只是为了立即说明问题,我有一种情况,样式表B正在加载(或者我认为)样式表A之后,因此应该因为级联而覆盖A的样式,实际上是加载到浏览器中在A.之前订单是错误的.

我有一个简单的React组件结构如下:

App
  > Header
  > Home
  > Footer
Run Code Online (Sandbox Code Playgroud)

在我的'index.js'中,我有基本的语句顺序:

import './assets/theme/theme_specific/scss/style.scss';

render(
  <Router history={browserHistory}>
    <Route path="/" component={App}>
      <IndexRoute getComponent={lazyLoadComponent(Home)} />
      <Route path="/resume" getComponent={lazyLoadComponent(Resume)} />
  </Router>,
  document.getElementById("app")
);
Run Code Online (Sandbox Code Playgroud)

这是App.js中的结构:

class App extends React.Component {
  render() {
    return (
      <div>
        <Header />
        {this.props.children}
        <Footer />
      </div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

在Header.js的顶部,我有以下内容:

import './Header.scss';
Run Code Online (Sandbox Code Playgroud)

处理.scss文件的Webpack加载器是:

test: /\.scss$/,
loader: 'style!css?sourceMap!resolve-url!sass?sourceMap',
Run Code Online (Sandbox Code Playgroud)

我已经确认!important在任何地方都没有使用过,而造型本身也是如此.

发生的事情是"Header.scss"正在加载FIRST,而'style.scss'正在加载.换句话说,'style.scss'覆盖'Header.scss'中的样式,而不是代码中出现的那种方式.Chrome检查器中的"已计算"选项卡确认了这种情况.

有人知道这里发生了什么吗?

css sass reactjs webpack

2
推荐指数
1
解决办法
2556
查看次数

标签 统计

css ×1

reactjs ×1

sass ×1

webpack ×1