ReactJS + Material Design:如何在组件之外获取主题颜色?

Posted

技术标签:

【中文标题】ReactJS + Material Design:如何在组件之外获取主题颜色?【英文标题】:ReactJS + Material Design: How to get theme colors outside component? 【发布时间】:2018-09-02 23:57:19 【问题描述】:

在我的 ReactJS app.js 我定义了一个主题:

const theme = createMuiTheme(
    palette: 
        primary: 
            main: "#54BD40",
        ,
    ,
);

我正在使用React wrapper for Chart.js,我想设置一个图表。但我不确定如何使用主题中的原色/主色:

import React,  Component  from 'react';
import  Line  from 'react-chartjs-2';

let data = []; //data here
const MONTHS = ['Jan', 'Feb', 'Mrt', ...];
const WEEK = ['Sun', 'Mon', 'Tue', ...];

let chart = 
    labels: MONTHS,
    datasets:[
        borderColor: ['#XXX'], //THEME COLOR HERE
    ],
;

class LineChart extends Component
    constructor(props)
        super(props);
        this.state = 
            chartData: chart,
            usage: false,
            generation: true,
        
    
    render()
        return (
            <div>
                <Line data= this.state.chartData  options= />
            </div>
        )
    


export default LineChart;

为了在render() 中使用主题调色板,我知道我可以导入withTheme() 并使用this.props.theme。但是现在它在组件之外是如何工作的呢? (我刚开始使用 ReactJS)

【问题讨论】:

【参考方案1】:

据我了解,您可以在完成后将常量导入您的主 js 文件 在 app.js 中导出。例子。 -

export const theme = createMuiTheme( palette:  primary:  main: "#54BD40", , , );

然后导入

Import  theme  from "app"

并在您的主 js 文件中的任何位置使用它。

【讨论】:

以上是关于ReactJS + Material Design:如何在组件之外获取主题颜色?的主要内容,如果未能解决你的问题,请参考以下文章

bootstrap-material-design-个人总结

Material Design学习笔记

Material Design

Android Material Design UI 和没有 Material Design 的 Android UI 有啥区别?

ReactJS + Material-UI:如何减小 Material-UI 的 <TableRow/> 的列宽?

React Material Design:在类组件中使用带有 redux 的 React Material Design 自定义样式