我正在使用 Material UI 的 createMuiTheme API 及其 ThemeProvider 组件为我的公司创建一个 Material UI 主题。当我在其中包装原生 Material UI 组件时,主题按预期工作。我正在尝试做的是创建一个单独的复合 Material UI 组件库,我公司的其他开发人员可以将其作为依赖项包含在他们的项目中,然后将他们的根应用程序包装在 MUI ThemeProvider 组件中。一个通用的可重用组件库和一个通用主题,每个都单独存储和维护。在实践中,主题在原生 Material UI 组件上按预期工作,但对使用 Material UI 构建并使用 webpack 打包的复合组件没有影响。
import React from 'react';
import {MyCompositeComponent} from '@my-mui-composite-components'
import themeSettings from './company-theme-settings';
import {
ThemeProvider,
StylesProvider,
createGenerateClassName,
} from '@material-ui/core/styles';
const Root = (props) => {
const generateClassName = createGenerateClassName({
seed: 'my-app',
});
return (
<ThemeProvider theme={themeSettings}>
<StylesProvider generateClassName={generateClassName}>
<MyCompositeComponent/>
</StylesProvider>
</ThemeProvider>
);
};
export default Root;
当上面的根应用程序加载时,主题设置不会应用于 . 我在这里尝试做的事情可能吗?有没有我想念的“正确”方法来做到这一点?