如何在 HighchartsReact 中使用来自 react-emotion 的样式?
How to use styled from react-emotion with HighchartsReact?
我想用 HighChartWrapper 包装 HighchartsReact,使用来自 react-emotion 的样式。
下面是我正在尝试的伪代码。
import HighchartsReact from 'highcharts-react-official';
import styled from 'react-emotion';
const HighChartWrapper = styled(HighchartsReact)`
/* some styles here */
.highcharts-background {
fill: white !important;
}
`;
<HighChartWrapper highcharts={Highcharts} options={chartData} />
样式无效。我知道 styled 可以为任何组件设置样式,只要它接受 className 属性即可。
那么有人对此有工作示例或解决方法吗?
您可以包装图表组件并通过 containerProps
传递 className
属性,例如:
const Chart = (props) => {
const [options] = useState({
...
});
return (
<HighchartsReact
highcharts={Highcharts}
options={options}
containerProps={{ className: props.className }}
/>;
);
};
const HighChartWrapper = styled(Chart)`
/* some styles here */
.highcharts-plot-border {
fill: black !important;
}
`;
现场演示: https://codesandbox.io/s/highcharts-react-demo-vosjm?file=/demo.jsx
文档: https://github.com/highcharts/highcharts-react#options-details
我想用 HighChartWrapper 包装 HighchartsReact,使用来自 react-emotion 的样式。
下面是我正在尝试的伪代码。
import HighchartsReact from 'highcharts-react-official';
import styled from 'react-emotion';
const HighChartWrapper = styled(HighchartsReact)`
/* some styles here */
.highcharts-background {
fill: white !important;
}
`;
<HighChartWrapper highcharts={Highcharts} options={chartData} />
样式无效。我知道 styled 可以为任何组件设置样式,只要它接受 className 属性即可。
那么有人对此有工作示例或解决方法吗?
您可以包装图表组件并通过 containerProps
传递 className
属性,例如:
const Chart = (props) => {
const [options] = useState({
...
});
return (
<HighchartsReact
highcharts={Highcharts}
options={options}
containerProps={{ className: props.className }}
/>;
);
};
const HighChartWrapper = styled(Chart)`
/* some styles here */
.highcharts-plot-border {
fill: black !important;
}
`;
现场演示: https://codesandbox.io/s/highcharts-react-demo-vosjm?file=/demo.jsx
文档: https://github.com/highcharts/highcharts-react#options-details