【问题标题】:How to apply my custom themes with ConfigProvider in Ant Design?如何在 Ant Design 中使用 ConfigProvider 应用我的自定义主题?
【发布时间】:2021-10-25 20:16:29
【问题描述】:

我们正在开发一个使用 React 和 Ant Design 的界面。我们想覆盖默认的主题和颜色。作为示例,我们定义了一个名为主题的数组。有 4 个不同的主题作为对象。我定义了一个按钮来更改主题。阅读官方文档,我在 App.js 中包含以下代码来覆盖默认主题,但没有成功。

ConfigProvider.config(
 {
  theme:theme
 }
)

谁能帮我覆盖默认主题而不用更少或其他任何东西,只需要使用 ConfigProvider 吗?

import "./App.css";
import "antd/dist/antd.css";
import { ConfigProvider } from "antd";
import { ThemeProvider } from "styled-components";
import ChangeTheme from "./components/ChangeTheme";
import { useContext } from "react";
import { AppContext } from "./_context";

const App = () => {
const { theme } = useContext(AppContext);
ConfigProvider.config({
theme: theme,
});
return (
<ThemeProvider theme={theme}>
  <ConfigProvider>
    <div className="App">
      <ChangeTheme />
    </div>
  </ConfigProvider>
</ThemeProvider>
);
};

export default App;

【问题讨论】:

    标签: reactjs antd


    【解决方案1】:

    第一步

    您需要在您的根文件之一中导入antd.variable.min.css,例如document 中推荐的src/index.js

    导入'antd/dist/antd.variable.min.css';

    第二步

    还需要在src/index.js中导入antd的ConfigProvider

    从 'antd' 导入 { ConfigProvider };

    第三步

    那么你需要修改ConfigProviderconfig方法中的主题变量,如下所示:

    ConfigProvider.config({ theme: { primaryColor: "#f00" } });

    ps您可以在theme 中修改的变量是:

    • 原色
    • 错误颜色
    • 信息颜色
    • 处理颜色
    • 成功颜色
    • 警告颜色

    第四步

    最后你将ConfigProvider 包裹在&lt;App/&gt; 组件周围src/index.js

    <ConfigProvider>
        {/* some other codes you might have */}
        <App />
    </ConfigProvider>
    

    【讨论】:

    • 如果我们使用较少,是否要遵循相同的步骤?
    • @AariefMohideen 你可以在它旁边使用任何你想要的东西,因为它只是 java 脚本代码,它与你的样式表无关
    • 感谢 Sima 提供的信息。我在使用 ConfigProvide 进行动态颜色 (primaryColor) 更新时遇到问题。示例:我有一个颜色选择器-> 一旦选择颜色 1(绿色)-> 更新原色-> 没有反射。如果我选择了颜色 2(黄色)-> 现在 primaryColor 更新为颜色 1(绿色)。我知道这与这个问题无关,但可能会对某些人有所帮助。感谢提前
    • @AariefMohideen 非常欢迎您,我认为您提到的问题是您处理状态更改的方式, setState() 并不总是立即更新组件,请查看@ 987654322@或者发个新问题,把你的代码放进去,我们一起解决
    猜你喜欢
    • 2021-06-05
    • 2020-05-21
    • 2023-02-09
    • 2019-07-17
    • 2020-10-26
    • 2020-10-24
    • 1970-01-01
    • 2020-11-03
    • 2021-05-20
    相关资源
    最近更新 更多