diff --git a/README.md b/README.md index 4351ab8..93526b7 100644 --- a/README.md +++ b/README.md @@ -429,6 +429,7 @@ export default ThemeTest; - 访问控制:用于权限管理 - 微前端动态组件:支持动态加载和卸载组件 - 网络请求:封装了 HttpClient,支持 GET、POST、PUT、DELETE 等请求方式 +- 主题控制:支持动态修改主题和字体大小 ## 开发 diff --git a/package.json b/package.json index 2263ade..1a902c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@codingapi/ui-framework", - "version": "0.0.37", + "version": "0.0.39", "description": "A UI Framework built with React and Typescript", "keywords": [ "ui", diff --git a/src/ThemeProvider/component.tsx b/src/ThemeProvider/component.tsx index 85580f1..b74a754 100644 --- a/src/ThemeProvider/component.tsx +++ b/src/ThemeProvider/component.tsx @@ -4,7 +4,7 @@ import {ThemeConfig} from "./types"; interface ThemeProviderProps { children: React.ReactNode; - theme: ThemeConfig + theme?: ThemeConfig } export const ThemeProviderContext = React.createContext(null); @@ -13,9 +13,11 @@ export const ThemeProvider: React.FC = (props) => { const currentTheme = React.useContext(ThemeProviderContext) || {}; + const propsTheme = props.theme || {} as ThemeConfig; + const [theme, dispatch] = React.useState({ ...currentTheme, - ...props.theme + ...propsTheme }); const themeContextRef = React.useRef(null);