File tree 2 files changed +22
-22
lines changed
2 files changed +22
-22
lines changed Original file line number Diff line number Diff line change @@ -11,11 +11,11 @@ export const commit = (fiber?: FiberFinish) => {
11
11
const curnode = getChildNode ( cur )
12
12
const refnode = getChildNode ( ref )
13
13
if ( op & TAG . INSERT || op & TAG . MOVE ) {
14
-
15
14
parent . insertBefore ( curnode , refnode )
16
15
}
17
16
if ( op & TAG . REPLACE ) {
18
17
parent . replaceChild ( curnode , refnode )
18
+ removeElement ( ref , false )
19
19
}
20
20
if ( op & TAG . UPDATE ) {
21
21
const node = getChildNode ( fiber )
@@ -65,13 +65,13 @@ const kidsRefer = (kids: Fiber[]) => {
65
65
} )
66
66
}
67
67
68
- export const removeElement = ( fiber : Fiber ) => {
68
+ export const removeElement = ( fiber : Fiber , flag : boolean = true ) => {
69
69
if ( fiber . isComp ) {
70
70
fiber . hooks && fiber . hooks . list . forEach ( ( e ) => e [ 2 ] && e [ 2 ] ( ) )
71
- fiber . kids . forEach ( removeElement as any )
71
+ fiber . kids . forEach ( v => removeElement ( v , flag ) )
72
72
} else {
73
73
// @ts -expect-error
74
- fiber . parentNode . removeChild ( fiber . node )
74
+ if ( flag ) fiber . parentNode . removeChild ( fiber . node )
75
75
kidsRefer ( fiber . kids )
76
76
refer ( fiber . ref , null )
77
77
}
Original file line number Diff line number Diff line change @@ -38,12 +38,12 @@ export const change = async t => {
38
38
t . eq ( effects , [ ] )
39
39
}
40
40
} ,
41
- // {
42
- // content: <div>removed</div>,
43
- // test: () => {
44
- // t.eq(effects, ['cleanUp 1'])
45
- // }
46
- // }
41
+ {
42
+ content : < div > removed</ div > ,
43
+ test : ( ) => {
44
+ t . eq ( effects , [ 'cleanUp 1' ] )
45
+ }
46
+ }
47
47
] )
48
48
}
49
49
@@ -78,12 +78,12 @@ export const once = async (t) => {
78
78
t . eq ( effects , [ ] )
79
79
}
80
80
} ,
81
- // {
82
- // content: <div>removed</div>,
83
- // test: () => {
84
- // t.eq(effects, ['cleanUp'])
85
- // }
86
- // }
81
+ {
82
+ content : < div > removed</ div > ,
83
+ test : ( ) => {
84
+ t . eq ( effects , [ 'cleanUp' ] )
85
+ }
86
+ }
87
87
] )
88
88
}
89
89
@@ -125,11 +125,11 @@ export const every = async t => {
125
125
effects = [ ]
126
126
}
127
127
} ,
128
- // {
129
- // content: <div>removed</div>,
130
- // test: () => {
131
- // t.eq(effects, ['cleanUp 2'])
132
- // }
133
- // }
128
+ {
129
+ content : < div > removed</ div > ,
130
+ test : ( ) => {
131
+ t . eq ( effects , [ 'cleanUp 2' ] )
132
+ }
133
+ }
134
134
] )
135
135
}
You can’t perform that action at this time.
0 commit comments