首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Material UI主题和Hyperstack

Material UI主题和Hyperstack
EN

Stack Overflow用户
提问于 2019-04-07 12:56:15
回答 1查看 179关注 0票数 1

Material UI (React)使用主题解决方案,在JS中创建主题对象,然后将其传递到顶级组件。在Opal中创建主题对象可能很复杂,因为Material组件需要传入一个JS函数,该函数实际动态创建主题。

有没有人举了一个运行良好的例子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-07 13:01:08

经过一些实验,我通过混合JS和Opal代码让它工作得很好,所以这是一个解决方案,以防其他人提出这个问题。(可能有一个更好的'more Opal‘解决方案,所以如果有的话,请发布一个替代的答案,但下面的一个确实很有效。

首先和webpack一起导入JS库:

代码语言:javascript
复制
import { MuiThemeProvider, 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';
global.createMuiTheme = createMuiTheme;
global.MuiThemeProvider = MuiThemeProvider;
global.indigo = indigo;
global.pink = pink;
global.red = red;

将以下内容添加到Javascript资源中:

代码语言:javascript
复制
// app/assets/javascripts/my_theme.js
const my_theme = createMuiTheme(
  { palette: {
    primary: { main: pink[500] },
    secondary: { main: indigo[500] }
  }
});

然后在您的顶级组件代码中提供主题:

代码语言:javascript
复制
class MyRouter < HyperComponent
  include Hyperstack::Router

  render(DIV) do
    MuiThemeProvider(theme: `my_theme` ) do
      CssBaseline do
        ...
      end
    end
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55555755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档