与gatsby一起使用gatsby-plugin-material-ui时放置主题文件的位置?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与gatsby一起使用gatsby-plugin-material-ui时放置主题文件的位置?相关的知识,希望对你有一定的参考价值。
我似乎无法让我的主题文件对Gatsby应用程序中的组件产生任何影响。我正在使用gatsby-plugin-material-ui
gatsby-config.js
的相关部分
`gatsby-plugin-netlify-cms`,
{
resolve: `gatsby-plugin-material-ui`,
options: {
pathToTheme: 'src/theme.js',
},
theme.js
import { createMuiTheme } from '@material-ui/core/styles';
import indigo from '@material-ui/core/colors/indigo';
import pink from '@material-ui/core/colors/pink';
import red from '@material-ui/core/colors/red';
const theme = createMuiTheme({
palette: {
primary: indigo,
secondary: pink,
error: red,
},
spacing: {
100
}
})
export default theme;
在组件内:
imports...
import { withStyles } from '@material-ui/core/styles';
const styles = theme => ({
heroText: {
color:'white',
textAlign: 'center',
lineHeight:7
},
mainBlogCopy: {
marginTop: theme.spacing.unit,
backgroundColor:theme.palette.primary
},
});
export default withStyles(styles)(AboutPage);
package.json
"dependencies": {
"@material-ui/core": "^3.9.3",
"gatsby": "^2.3.24",
"gatsby-image": "^2.0.34",
"gatsby-plugin-manifest": "^2.0.24",
"gatsby-plugin-material-ui": "^1.2.4",
更多...
如何使用此插件在另一个文件中使用主题?
看起来这个插件尚未支持theme
。它也使用了材料ui风格的alpha版本(@material/styles
),而你使用的是稳定版本(@material/core/styles
)。
无论哪种方式,您都必须自己实现主题功能。如果您选择坚持使用v3,这可能会有所帮助:
在根目录下创建一个名为mui-root-wrapper.js
的文件
// mui-root-wrapper.js
import React from 'react'
import { MuiThemeProvider } from '@material-ui/core/styles'
import theme from 'src/theme.js'
export default ({ element }) => (
<MuiThemeProvider theme={theme}>
{element}
</MuiThemeProvider>
)
然后将此组件导入gatsby-browser.js
和gatsby-ssr.js
:
// gatsby-browser.js, gatsby-ssr.js
import muiRootWrapper from "./mui-root-wrapper"
export const wrapRootElement = MUIWrapper
希望这足以让你前进。如果你选择迁移到mui v4,你必须做类似的事情,但导入
import { ThemeProvider } from '@material-ui/styles';
代替。这是documentation for the api.
以上是关于与gatsby一起使用gatsby-plugin-material-ui时放置主题文件的位置?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Drupal 8 视图与 GraphQL / Gatsby.js 一起使用
与gatsby一起使用gatsby-plugin-material-ui时放置主题文件的位置?
如何让 Tailwind.css 与 Gatsby.js 一起工作?
在 Gatsby 中使用 ApolloClient 与 localhost / 本地 IP uri