我正在将应用程序从 Material UI v4 迁移到 v5,但遇到了一些问题。其中之一是属性“palette”一旦在 makeStyles 中使用,就不会被 Material UI 中的 DefaultTheme 识别。该组件在 v4 中工作正常,但是当我将大部分内容移至 v5 时,它现在显示一个错误,并且无法识别“调色板”属性。您能看一下并让我知道如何修复它吗?
这就是它在主组件中的调用方式: import { makeStyles } from '@mui/styles';
const useStyles = makeStyles((theme) => ({
styledButton: {
'&': { color: theme.palette.cerulean },
'&.Mui-selected': {
backgroundColor: theme.palette.aliceBlue,
color: theme.palette.cerulean,
},
'&:hover': {
backgroundColor: 'rgba(227,245,255, 0.5) !important',
},
},
Run Code Online (Sandbox Code Playgroud)
}));
当我将鼠标悬停在“调色板”上方时,TS 会给出如下评论:“DefaultTheme”类型上不存在属性“调色板”。
主题在App中调用如下:
import { ThemeProvider } from '@mui/styles';
Run Code Online (Sandbox Code Playgroud)
从 '@nevomo/utilities' 导入 { MainTheme };
export const App: FC = () => (
<StyledEngineProvider injectFirst>
<ThemeProvider theme={MainTheme}> …Run Code Online (Sandbox Code Playgroud) 在该项目中,我正在创建一个 React Contex,并且我想正确键入子项,不幸的是在 codeandbox 中仅接受“任何”类型。您能看一下并建议它应该是什么类型吗?我想避免“任何”类型。
这就是 Context.Provider 的实现方式
const App = () => {
return (
<BrowserRouter>
<PostsContextProvider>
<HeaderComponent />
<ButtonsNavigation />
<Routing />
</PostsContextProvider>
<DownBar />
</BrowserRouter>
);
};
export default App;
Run Code Online (Sandbox Code Playgroud)
这是 Context 组件
interface PostsContextValues {
posts: PostType[];
}
export const PostsContext = createContext<PostsContextValues>({
posts: []
});
export const PostsContextProvider = ({ children }: any) => {
const value = useMemo(
() => ({
posts: data
}),
[data]
);
return (
<PostsContext.Provider value={value}>{children}</PostsContext.Provider>
);
};
Run Code Online (Sandbox Code Playgroud)
谢谢 !
在终端中运行后,我会在终端中获得以下信息expo start。在expo start我跑步之前:
上述所有过程均顺利进行。
我想为我们使用 ThemeProvider 的应用程序添加全局背景颜色。我看到了我无法弄清楚的奇怪情况。在下面的图片中,您可以看到主体组件没有“捕获”应用程序的整个组件,另请查看开发工具中的主体道具,背景颜色和颜色(为测试而添加)与我在下面的代码中添加的不同.带有文本的组件:“Wybierz ko\xc5\x82o...”是有条件渲染的,这就是为什么我想全局设置backgroundColor属性来覆盖这种情况。
\n\n这就是 MainTheme 的构建方式:
\n components: {\n MuiCssBaseline: {\n styleOverrides: {\n \'@global\': {\n html: {\n fontSize: \'62.5%\' /* 62.5% of 16px = 10px */,\n fontFamily: \'Poppins, sans-serif\',\n },\n body: {\n margin: \'0\',\n color: \'red\',\n boxSizing: \'border-box\',\n fontFamily: \'Poppins, sans-serif\',\n backgroundColor: \'#E3E3E3\',\n },\n },\n },\n },\nRun Code Online (Sandbox Code Playgroud)\n在这里你可以看到App组件是如何构建的
\nexport const App: FC = () => (\n<StyledEngineProvider injectFirst>\n <ThemeProvider theme={MainTheme}>\n <SCThemeProvider theme={MainTheme}>\n <CssBaseline />\n <Router>\n <AuthContextProvider>\n <Notifications />\n <RoutingManager />\n </AuthContextProvider>\n </Router>\n </SCThemeProvider>\n </ThemeProvider>\n</StyledEngineProvider>\nRun Code Online (Sandbox Code Playgroud)\n); …