React.js之Ant Design(Antd)样式无效

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',
+   }),
+ );

最后重启。

你可能感兴趣的:(React.js之Ant Design(Antd)样式无效)