mirror of
https://github.com/hustcc/echarts-for-react.git
synced 2025-12-08 20:16:09 +00:00
* Pass unknown props through to the div element This fits common React conventions and allows using attributes such as `data-testid` for testing purposes. Related changes: - Adding HTMLAttributes<HTMLDivElement> to EChartsReactProps meant that EChartsReactProps was no longer usable as a `Record<string, unknown>`, which caused problems for the `pick` function. (See https://stackoverflow.com/q/65799316/25507.). I updated the pick function to use a generic type instead. - Add [ignoreRestSiblings](https://eslint.org/docs/latest/rules/no-unused-vars#ignorerestsiblings) so ESLint is happy with the new code. - Fix an unrelated Prettier warning in `componentDidUpdate`. There's a slight risk of backwards-incompatible changes in this release: IF the user previously passed unknown props (e.g., due to typos or mistaken props spreads), they were ignored, but they're now passed through to the div element. Fixes #546 * Update tests * Code review
1.8 KiB
1.8 KiB
| title | order |
|---|---|
| HTML Properties | 10 |
HTML Properties
Unknown (non-ECharts) props are passed through to the div element.
import React from 'react';
import ReactECharts from 'echarts-for-react';
const Page: React.FC = () => {
const option = {
title: {
text: '堆叠区域图'
},
tooltip : {
trigger: 'axis'
},
legend: {
data:['邮件营销','联盟广告','视频广告']
},
toolbox: {
feature: {
saveAsImage: {}
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis : [
{
type : 'category',
boundaryGap : false,
data : ['周一','周二','周三','周四','周五','周六','周日']
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name:'邮件营销',
type:'line',
stack: '总量',
areaStyle: {normal: {}},
data:[120, 132, 101, 134, 90, 230, 210]
},
{
name:'联盟广告',
type:'line',
stack: '总量',
areaStyle: {normal: {}},
data:[220, 182, 191, 234, 290, 330, 310]
},
{
name:'视频广告',
type:'line',
stack: '总量',
areaStyle: {normal: {}},
data:[150, 232, 201, 154, 190, 330, 410]
}
]
};
const handleDemoButton = () => {
console.log(document.querySelector(['[data-testid="html-props-demo"]']));
window.alert('Open console, see the log detail.')
};
return (
<>
<ReactECharts
option={option}
style={{ height: 400 }}
role="figure"
data-testid="html-props-demo"
/>
<button type="button" onClick={handleDemoButton}>Demo</button>
</>
);
};
export default Page;