New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reseting route state #78
Comments
Hey,
If we're talking about a real "reset" of the state, there is one place I do this to essentially restart the app after appearance settings are changed by Normally you don't want a full reset, but toggle a few flags at once to pop back to your If this tip does not help, please do provide the code of how you're changing the routing state to pop back and the routing state structure itself. |
@nalexn Would you please take a look at this project? |
Ok, after a quick glance I think you should remove NavigationLink(destination: AuthenticationView(), isActive: routingBinding.shouldNavigateToAuthetication) {
Button {
logout()
} label: {
Image(systemName: "power")
//...
}
} then, I'd removed the injected.appState[\.routing.home.shouldNavigateToAuthetication] = true you should toggle the if container.interactors.splashInteractor.isLogin {
NavigationLink(
destination: HomeView(),
isActive: $showHomeView) { EmptyView() }
} else {
NavigationLink(
destination: AuthenticationView(),
isActive: $showAuthenticationView) { EmptyView() }
} |
Thank you for the effort but I want to go forward (after log out I want to instantiate new authentication view). I did follow your steps but the log out button does nothing without navigation link. When we instantiate a view twice (based on a UX situation) we don't get the proper result because the app state holds the routing last states and the automatic navigation happens afterward. Do you have any suggestion on that? I was trying to reset the AppState.Routing struct on the .onAppear or .onDisappear but the result was messy and not satisfying. |
Ok, then if you actually need to show another AuthenticationView and not pop back to the original, the second one has to rely on separate routing parameters. Introduce a secondary set of routing params for AuthenticationView, and then control which set to use by providing an enum or a bool value as init parameter for the AuthenticationView |
Hit @nalexn, great job on you repo.
I have a question. How and when do you reset your routing states? Currently I have a hierarchy like below:
SplashView -> AuthenticationView -> SignUpView -> HomeView
I want to log out on home view and go back (move forward) to authentication view. when I change the routing state on home view and go to authentication view, all the previous flags for navigation are true and therefore the view goes forward again and again.
The text was updated successfully, but these errors were encountered: