Skip to content

Commit 9a844c6

Browse files
authored
fix(Area): 修复面积图 x 为空时,图形不绘制 (#1870)
1 parent 723026d commit 9a844c6

File tree

3 files changed

+76
-2
lines changed

3 files changed

+76
-2
lines changed

packages/f2/src/components/line/withLine.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ export default (View) => {
2929
const tmpPoints = [];
3030
for (let i = 0, len = points.length; i < len; i++) {
3131
const point = points[i];
32-
const { y } = point;
32+
const { x, y } = point;
33+
// 过滤 x 为 NaN 的点
34+
if (isNaN(x)) {
35+
continue;
36+
}
3337
if (isArray(y)) {
3438
if (isNaN(y[0])) {
3539
continue;
@@ -51,7 +55,11 @@ export default (View) => {
5155
let tmpPoints = [];
5256
for (let i = 0, len = points.length; i < len; i++) {
5357
const point = points[i];
54-
const { y } = point;
58+
const { x, y } = point;
59+
// 过滤 x 为 NaN 的点
60+
if (isNaN(x)) {
61+
continue;
62+
}
5563
if (isArray(y)) {
5664
if (isNaN(y[0])) {
5765
if (tmpPoints.length) {

packages/f2/test/issues/1867.test.tsx

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import { jsx, Canvas, Chart, Axis, Area } from '../../src';
2+
import { createContext, delay } from '../util';
3+
4+
const data = [
5+
{
6+
dt: '20231008',
7+
date: '10-08',
8+
value: 1.31,
9+
},
10+
{
11+
dt: '20231009',
12+
date: '10-09',
13+
value: 57.5,
14+
},
15+
{
16+
dt: '20231010',
17+
// date: '10-10',
18+
value: 151.83,
19+
},
20+
{
21+
dt: '20231011',
22+
date: '10-11',
23+
value: 291.6,
24+
},
25+
{
26+
dt: '20231012',
27+
date: '10-12',
28+
value: 45.62,
29+
},
30+
{
31+
dt: '20231013',
32+
date: '10-13',
33+
value: 7.4,
34+
},
35+
{
36+
dt: '20231007',
37+
// data: '10-07',
38+
value: 9,
39+
},
40+
];
41+
42+
describe('x 轴字段不存在', () => {
43+
it('x 轴字段不存在', async () => {
44+
const context = createContext();
45+
const { props } = (
46+
<Canvas context={context} pixelRatio={1}>
47+
<Chart data={data}>
48+
<Axis
49+
field="date"
50+
style={{
51+
label: { align: 'between' },
52+
}}
53+
/>
54+
<Area x="date" y="value" color="l(90) 0:#1890FF 1:#f7f7f7" />
55+
</Chart>
56+
</Canvas>
57+
);
58+
59+
const canvas = new Canvas(props);
60+
canvas.render();
61+
62+
await delay(1000);
63+
64+
expect(context).toMatchImageSnapshot();
65+
});
66+
});

0 commit comments

Comments
 (0)