3

CRA实际上,我继承了一个 ReactJS Web 应用程序,它由Ant-Design初始化。我刚刚使用 Material-UI 并且没有使用And Design的经验。

Material-UI 处理样式的方式很棒,但 AntD 用于less处理 CSS。我很难像古人一样工作。

我搜索了很多,但没有找到在 Ant Design 项目中使用JSS[ CSS in JS ] 的方法。

我的意思如下:

import { AntDCompo } from 'antd';
import { Styled , injectStyled } from 'react-jss';

const MyCompo = ({ classes }) => (
  <AntDCompo className={classes.container} />
);

const styles = Styled({
  container: {
    color: '#f00',
  },
});

export default injectStyled(styles)(MyCompo);

但是在 Ant Design 文档中只是像古老的东西一样声明:

import { AntDCompo } from 'antd';
import styles from 'myCompoStyles.less';

const MyCompo = () => (
  <AntDCompo className={styles.container} />
);

我该怎么做?或者有什么方法可以将 JSS 用于 AndD 组件?

4

1 回答 1

1

与每个 CSS-in-JS 一样,您可以针对普通的 CSS 属性:

import { Icon } from 'antd';
const DarkHoverStyle = styled(Icon)`
  color: gray;
  :hover {
    color: palevioletred;
  }
`;

在某些情况下,您可能需要针对特定​​的antd CSS 类

const GlobalStyle = createGlobalStyle`
  .ant-tooltip-inner {
    background-color: palevioletred;
    color: black;
  }
`;

在下一个示例中,我们设置了 an 的悬停颜色Icon和组件的默认样式Tooltip(更改了默认的黑色背景):

export default function App() {
  return (
    <FlexBox>
      <GlobalStyle />
      <Tooltip title="Github Icon">
        <DarkHoverStyle type="github" style={{ fontSize: 100 }} />
      </Tooltip>
    </FlexBox>
  );
}

编辑 react-antd-styled-template

于 2019-09-24T10:55:49.650 回答