Antd是蚂蚁金服开发的一个开源库,很多国内和国外的前端程序员在工作中都会使用。作为一个优秀的前端库,它所能实现的前端特效简约而又大气,给不少程序员留下好感。
Antd的安装方法在此就不赘述了,它的官网上一步一步写的非常清楚。
Antd的使用方法按理来说应该也比较简单。按照官网提供的实例,把代码复制下来,再依据自己的实际情况进行简单调整,就应该能够满足需求。
但本人在使用Antd开发时遇到如下问题,将官网的实例代码Copy到自己项目后,其中的提供的样式代码不生效。这里以Grid为例,如下图所示。
import { Row, Col } from 'antd';
ReactDOM.render(
col-6
col-6
col-6
col-6
col-6
col-6
col-6
col-6
,
mountNode,
);
/*以下样式代码不生效*/
.gutter-example .ant-row > div {
background: transparent;
border: 0;
}
.gutter-box {
background: #00a0e9;
padding: 5px 0;
}
要知道,我使用Antd就是为了它的样式啊。于是,在网上搜索了相关信息,找到了解决办法。其实,在Antd官网已经提供了解决方案。但是,包括我在内的大多数人,阅读完安装说明,直接找到自己需求的组件进行开发,而没有将官方文档完整的读一遍,导致遇到问题时一头雾水。
解决方法:
https://ant.design/docs/react/use-with-create-react-app-cn#%E4%BD%BF%E7%94%A8-babel-plugin-import
引入 react-app-rewired 并修改 package.json 里的启动配置。由于新的 [email protected] 版本的关系,你还需要安装 customize-cra。
`yarn add react-app-rewired customize-cra`
/* package.json */
"scripts": {
- "start": "react-scripts start",
+ "start": "react-app-rewired start",
- "build": "react-scripts build",
+ "build": "react-app-rewired build",
- "test": "react-scripts test",
+ "test": "react-app-rewired test",
}
然后在项目根目录创建一个 config-overrides.js 用于修改默认配置。
module.exports = function override(config, env) {
// do stuff with the webpack config...
return config;
};
使用 babel-plugin-import,尝试安装它并修改 config-overrides.js 文件。
yarn add babel-plugin-import
+ const { override, fixBabelImports } = require('customize-cra');
- module.exports = function override(config, env) {
- // do stuff with the webpack config...
- return config;
- };
+ module.exports = override(
+ fixBabelImports('import', {
+ libraryName: 'antd',
+ libraryDirectory: 'es',
+ style: 'css',
+ }),
+ );
最后重启。