In a component I'm listening to ActivatedRoute.queryParamMap for changes. When I navigate by using the router and specify queryParamsHandling: 'preserve', I expect the queryParamMap observable not to fire. It works except for when there's an array of parameters, e.g. ?a=1&a=2&a=3. In my example I'm using named router outlets, and I haven't seen it happening when not using them. Have I set up routing incorrectly?
If you look at this stackblitz (source here) with the dev console open you'll see the observable firing when you click Navigate. If you change the query string to something simple, e.g. ?a=1 then it only fires the first time.