我的编程空间,编程开发者的网络收藏夹
学习永远不晚

关于react+antd样式不生效问题的解决方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

关于react+antd样式不生效问题的解决方式

1、添加antd组件样式不生效

在入口文件中引入import 'antd/dist/antd.css'
样式生效,但是生成警告
WARNING in ./node_modules/antd/dist/antd.css
Failed to parse source map: 'webpack://antd/./components/time-
picker/style/index.less' URL is not supported
 
这样就需要在webpack中配置,react项目默认的配置文件是不显示的,需要运行指令“yarn eject”暴露配置文件
运行时又遇到问题2
 
解决完问题2后
解决1的方法是在webpack.config.dev.js和webpack.config.prod.js文件添加相关配置,然后引入antd.less
暴露出webpack配置后,在webpack.config.js 中更改配置如下
// style files regexes
const cssRegex = /\.(css|less)$/;//此行为更改行!!!!!!!!!
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
 
const hasJsxRuntime = (() => {
  if (process.env.DISABLE_NEW_JSX_TRANSFORM === 'true') {
    return false;
  }
 
  try {
    require.resolve('react/jsx-runtime');
    return true;
  } catch (e) {
    return false;
  }
})();
 
// This is the production and development configuration.
// It is focused on developer experience, fast rebuilds, and a minimal bundle.
module.exports = function (webpackEnv) {
  const isEnvDevelopment = webpackEnv === 'development';
  const isEnvProduction = webpackEnv === 'production';
 
  // Variable used for enabling profiling in Production
  // passed into alias object. Uses a flag if passed into the build command
  const isEnvProductionProfile =
    isEnvProduction && process.argv.includes('--profile');
 
  // We will provide `paths.publicUrlOrPath` to our app
  // as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.
  // Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz.
  // Get environment variables to inject into our app.
  const env = getClientEnvironment(paths.publicUrlOrPath.slice(0, -1));
 
  const shouldUseReactRefresh = env.raw.FAST_REFRESH;
 
  // common function to get style loaders
  const getStyleLoaders = (cssOptions, preProcessor) => {
    const loaders = [
      isEnvDevelopment && require.resolve('style-loader'),
      isEnvProduction && {
        loader: MiniCssExtractPlugin.loader,
        // css is located in `static/css`, use '../../' to locate index.html folder
        // in production `paths.publicUrlOrPath` can be a relative path
        options: paths.publicUrlOrPath.startsWith('.')
          ? { publicPath: '../../' }
          : {},
      },
      {
        loader: require.resolve('css-loader'),
        options: cssOptions,
      },
     //此{}为添加行!!!!!!!!!!!!!!!!!!!
      {
        loader:'less-loader',
        options:{
          javascriptEnabled: true
        }
      },
 

运行代码,后又遇到报错看问题3

报错:Less Loader has been initialized using an options object that does not match the API schema 

2、运行yarn eject时暴露配置文件报错

This git repository has untracked files or uncommitted changes:  .DS_Store

git add .
 
git commit -am "Save before ejecting"
 
然后再运行就可以了

这样的webpack文件中就有了

3、less-loader版本过高,删除旧版本,下载低版本即可

yarn remove less-loader 
 
yarn add less-loader@4.0.1

 再运行,代码成功运行

4、项目中引入icon代码报错

export 'Icon' (imported as 'Icon') was not found in 'antd'

Ant Design 从 v3 升级到 v4 导致

图标升级(点击可查看文档),旧版 Icon 使用方式将被废弃,你将仍然可以通过兼容包继续使用:

import { Icon } from '@ant-design/compatible';
 
运行时如果没有安装包,运行指令 yarn add  @ant-design/compatible
 
再重新运行代码就可以了

补充:React中antd按需加载样式不生效解决办法

按照antd官网文档,执行按需加载操作后,样式不生效,很可能是因为在webpack.config.js文件中设置了css模块化;

解决办法:

在终端中执行

npm run eject

弹出config文件夹后,找到webpack.config.js文件

{
              test: cssRegex,
              exclude: cssModuleRegex,
              use: getStyleLoaders({
                importLoaders: 1,//在这行后面添加 modules:false
                modules:false,
                sourceMap: isEnvProduction
                  ? shouldUseSourceMap
                  : isEnvDevelopment,
              }),

总结

到此这篇关于react+antd样式不生效问题的解决方式的文章就介绍到这了,更多相关react+antd样式不生效解决内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

关于react+antd样式不生效问题的解决方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

React样式冲突解决问题的方法

本文主要介绍了React样式冲突解决问题的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-10

elementui的el-popover修改样式不生效的解决方法

本篇内容介绍了“elementui的el-popover修改样式不生效的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在使用elem
2023-06-20

解决Antd输入框卡顿问题以及Pubsub.js的使用方式

这篇文章主要介绍了解决Antd输入框卡顿问题以及Pubsub.js的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-17

关于Android HTML5 audio autoplay无效问题的解决方案

前言:在android HTML5 开发中有不少人遇到过 audio 标签 autoplay在某些设备上无效的问题,网上大多是讲怎么在js中操作,即在特定的时刻调用audio的play()方法,在android上还是无效。 一、解决方案 在
2022-06-06

关于ssh连不上问题的解决方法(必看)

问题:能ping通Linux服务器 但是ssh连不上 解决方法这个问题花了我20分钟去查资料,网上写的解决方法也是五花八门,不过,总算解决了,分享出来和大家一起学习。 服务器正常,PING也能P
2022-06-04

关于Vite不能使用require问题的解决方法

在vue2中我们通常会在模板中通过三目运算符和require来实现动态图片,下面这篇文章主要给大家介绍了关于Vite不能使用require问题的解决方法,需要的朋友可以参考下
2022-11-13

编程热搜

目录