样式不适用于react组件

时间:2019-05-14 18:29:20

标签: javascript reactjs less

我有一个用于加载消息的组件,但是某种程度上样式不适用于它。

仅消息显示在页面上,而不显示样式。 我尝试将其直接添加到js及其工作中,但未尝试使用外部样式表时添加。出了什么问题。

.js文件:

import style from './index.less';

export default class Loading extends Component {

  render() {
        const {
            loading,
            message,
            iconClass,
            textClass,
            containerClass
        } = this.props;
        return (
            <div className={containerClass || style.container}>
                <div className={iconClass || style.icon}>
                    <div className={loading ? style.loading : null}/>
                </div>
                <div className={textClass || style.text}>
                    <span>{message}</span>
                </div>
            </div>
        );
    }
}

少:

:local(.index){

  .container {
    margin: 0 auto;
    height: 200px;
    width: 300px;
  }

  .icon {
    height: 180px;
    fill: 'Red';
  }

  .text {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.43;
    letter-spacing: 0.6px;
    color: #58585b;
    color: var(--slate-grey);
    text-align: center;
  }

  .loading path:nth-of-type(1) {
    animation-delay: 0.1s;
    -o-animation-delay: 0.1s;
    -ms-animation-delay: 0.1s;
    -webkit-animation-delay: 0.1s;
    -moz-animation-delay: 0.1s;
  }

  .loading path:nth-of-type(2) {
    animation-delay: 0.2s;
    -o-animation-delay: 0.2s;
    -ms-animation-delay: 0.2s;
    -webkit-animation-delay: 0.2s;
    -moz-animation-delay: 0.2s;
  }
}

2 个答案:

答案 0 :(得分:1)

您需要将其导入为 导入'./index.less' 而不是将风格传递给道具。它将根据元素中给定的类名称从您的less文件中读取内容。

答案 1 :(得分:1)

我对Less的使用不如在Sass上进行很多,但我不认为将样式表作为样式[第1行]导入,然后作为className进行应用有效(至少在Sass中不起作用)。

正确的样式导入方式import { AngularFirePerformanceModule } from '@angular/fire/performance';

然后作为常规类申请:

import './index.less';

此外,不确定return ( <div className={containerClass ? containerClass : 'container'}> <div className={iconClass ? iconClass : 'icon'}> ... ); 应该做什么。我将删除它只是为了测试样式表是否正确加载。另外,请确保使用containerClass和iconClass的假值进行测试。