@@ -44,6 +44,7 @@ export class QueriesObserver<
44
44
#lastCombine?: CombineFn < TCombinedResult >
45
45
#lastResult?: Array < QueryObserverResult >
46
46
#observerMatches: Array < QueryObserverMatch > = [ ]
47
+ #observerMap: Map < QueryObserver , number > = new Map ( )
47
48
48
49
constructor (
49
50
client : QueryClient ,
@@ -82,6 +83,7 @@ export class QueriesObserver<
82
83
this . #observers. forEach ( ( observer ) => {
83
84
observer . destroy ( )
84
85
} )
86
+ this . #observerMap. clear ( )
85
87
}
86
88
87
89
setQueries (
@@ -130,6 +132,11 @@ export class QueriesObserver<
130
132
this . #observers = newObservers
131
133
this . #result = newResult
132
134
135
+ this . #observerMap. clear ( )
136
+ newObservers . forEach ( ( observer , index ) => {
137
+ this . #observerMap. set ( observer , index )
138
+ } )
139
+
133
140
if ( ! this . hasListeners ( ) ) {
134
141
return
135
142
}
@@ -253,8 +260,8 @@ export class QueriesObserver<
253
260
}
254
261
255
262
#onUpdate( observer : QueryObserver , result : QueryObserverResult ) : void {
256
- const index = this . #observers . indexOf ( observer )
257
- if ( index !== - 1 ) {
263
+ const index = this . #observerMap . get ( observer )
264
+ if ( index !== undefined ) {
258
265
this . #result = replaceAt ( this . #result, index , result )
259
266
this . #notify( )
260
267
}
0 commit comments