[英]How to override styles in a react-chartist component?
我有一个简单的 React JS 组件,它围绕着非常酷的 React ChartistGraph 组件。 唯一的问题是样式似乎被 ChartistGraph 默认 CSS 覆盖。 有很多关于常规Chartist js 包的信息,但关于React JS 包的信息并不多。
如您所见,我尝试通过两种方式更改填充颜色:通过样式类和通过组件支持的道具。
import React from 'react';
import { Paper, withStyles } from 'material-ui';
import ChartistGraph from 'react-chartist';
const styles = theme => ({
graphStyle: {
fill: 'red',
},
});
const CustomChart = ({ classes, graph }) => {
return (
<Paper>
<ChartistGraph
className={classes.graphStyle}
data={graph.data}
options={graph.options}
type={graph.type}
style={{ fill: 'red' }}
/>
</Paper>
);
};
export default withStyles(styles)(CustomChart);
您可以使用 jss 的嵌套规则(默认包含在material-ui
):
const styles = theme => ({
graphStyle: {
'& .ct-label': { fill: 'red' },
},
});
完整代码:
import React from 'react';
import { Paper, withStyles } from 'material-ui';
import ChartistGraph from 'react-chartist';
const styles = theme => ({
graphStyle: {
'& .ct-label': { fill: 'red' },
},
});
const CustomChart = ({ classes, graph }) => {
return (
<Paper>
<ChartistGraph
className={classes.graphStyle}
data={graph.data}
options={graph.options}
type={graph.type}
// style={{ fill: 'red' }} // omitted
/>
</Paper>
);
};
export default withStyles(styles)(CustomChart);
我最近遇到了类似的问题。React-Chartist 建立在 react 而不是 material-ui 之上。当您检查时,您会发现常规的 css 类名,而不是“material ui-ish”类名(如 MuiTable-root、MuiTable- selectedRow 等)。所以,恕我直言,它不会支持 material-ui 方法(withStyle/makeStyle)和规则。
但你可以做的是:-
.您可以将它导入到应用程序的主文件(index.js 或其他任何文件)中,因为应用程序中的每个 css 都将捆绑在一个文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.