The Destination on the NavigationView is NOT lazy, so it initializes the Destination view as soon as it is created. An easy work around can be found here: SwiftUI – ObservableObject created multiple times. Wrap your Destination view within the LazyView.
CLICK HERE to find out more related problems solutions.