Javascript 是否可以将Ant设计主题更改为动态

Javascript 是否可以将Ant设计主题更改为动态,javascript,reactjs,antd,Javascript,Reactjs,Antd,在react 16.7 CRA中,是否有任何方法可以在运行时更改Ant设计主题。 Config-overides.js文件如下所示 const{override,fixBabelImports}=require('customize-cra'); module.exports=覆盖( fixBabelImports(“导入”{ 图书馆名称:“antd”, 库目录:“es”, 样式:“css”, }), addLessLoader({ javascriptEnabled:true, 修改变量:{

在react 16.7 CRA中,是否有任何方法可以在运行时更改Ant设计主题。 Config-overides.js文件如下所示

const{override,fixBabelImports}=require('customize-cra');
module.exports=覆盖(
fixBabelImports(“导入”{
图书馆名称:“antd”,
库目录:“es”,
样式:“css”,
}),
addLessLoader({
javascriptEnabled:true,
修改变量:{'@primary color':'#1DA57A'},
})

);是的,现在可以使用。您可以在的源代码中看到(通过调用
window.less.modifyVars(vars)


正如存储库中所述,webpack插件注入了一个javascript文件,允许您使您的应用程序可以像动态修改较少的变量一样运行。另外请注意,如repo中所述,如果您的网页包没有生成HTML,则需要手动修改它,以包含库和适当的
脚本
文件。

实现这一点的另一种方法是仅为暗模式创建另一组css,并对其进行范围限定

较少的编译器会以某种方式处理此问题,但在代码中输入较少的编译文件的顺序上,您需要格外小心。您可能需要为此尝试并出错。基本思想是:

import './styles/dark.less';
import './styles/index.less';
在黑暗中,你会有更多或更少

[data-theme^="dark"] {
  @import "./your.less";   
}
现在,您可以通过在根html标记中分配值来动态选择模式。 关于这一点,此链接可能会有所帮助:

也许可以帮助您