2

我已经集成react-css-moduleshttps://github.com/mxstbr/react-boilerplate,并且正在使用它:

import React from 'react';
import CSSModules from 'react-css-modules';
import styles from './styles.css';

class Header extends React.Component {
  render() {
    return (
      <header styleName="app__header">
        // more content
      </header>
    );
  }
}

export default CSSModules(Header, styles); <--- error

但是,JSLint 给了我一个错误:

error  A function with a name starting with an uppercase letter should only be used as a constructor  new-cap

我该如何解决这个问题?react-css-modules我以与文档所说的相同的方式编写了 JavaScript 。错误似乎不Header应该有大写字母,但从惯例我知道类应该。

作为额外的奖励,如果我可以简单地导出Header而不将其包装在CSSModules(Header, styles);其中会很棒(例如export default Header extends Component {}),但是文档没有提到这一点,所以我不确定它是否可能。

4

1 回答 1

1

由于您的 JSLint 配置明确禁止这种类型的命名格式,您会收到此错误。在此处找到更多信息:https ://jslinterrors.com/a-constructor-name-should-start-with-an-uppercase-letter

更改此规则可能值得考虑,因为在 React 中,您经常使用高阶组件,例如您正在使用的组件,它们通常以大写格式命名。

如果您不想更改规则,您当然可以根据需要重命名您的导入。例子:

import cssModules from 'react-css-modules';

...

export default cssModules(Header, styles);

这会起作用,但你必须为你的团队决定约定。

于 2016-06-09T14:00:06.847 回答