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
93 lines
1.8 KiB
Markdown
93 lines
1.8 KiB
Markdown
---
|
|
title: HTML Properties
|
|
order: 10
|
|
---
|
|
|
|
## HTML Properties
|
|
|
|
Unknown (non-ECharts) props are passed through to the div element.
|
|
|
|
```tsx
|
|
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;
|
|
```
|