You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of all, thanks for all the work put onto this project. I'm building a project based off of this and it's looking really good, but I am encountering some issues that I explain below.
To summarize:
ViewA navigates to ViewB. To achieve this, I implement a NavigationLink(destination: ViewB(viewModel: ViewBViewModel())). When inside ViewB, some app state is modified, which ViewA receives with a onReceive. In the onReceive callback, ViewA makes some changes to its view like disabling a button. This causes ViewA to recalculate itself, which initializes ViewBViewModel again, losing all the changes, including all loaded data from the repository, leaving the user on ViewB with all Loadable set to .notRequested, and all viewModel state lost.
This also happens if the app state is implemented through a EnvironmentObject. If I modify some environment object from ViewB that ViewA uses, ViewA recreates itself, losing all the state on ViewBViewModel.
I am also having some issues related to this when navigating back from a view to its predecessor. In some cases, if I navigate from some view ViewA to other view ViewB, when dismissing ViewB, ViewA gets recalculated, which initializes ViewBViewModel again.
Has anyone encountered this behaviour and came to a solution?
The text was updated successfully, but these errors were encountered:
Using @StateObject instead of @ObservedObject for view-owned view models seems to stop views from recreating view models on every view refresh, even if some parent view is changing.
So it could be a potential improvement, at least it's keeping things in place for me.
First of all, thanks for all the work put onto this project. I'm building a project based off of this and it's looking really good, but I am encountering some issues that I explain below.
To summarize:
ViewA
navigates toViewB
. To achieve this, I implement aNavigationLink(destination: ViewB(viewModel: ViewBViewModel()))
. When insideViewB
, some app state is modified, whichViewA
receives with aonReceive
. In theonReceive
callback,ViewA
makes some changes to its view like disabling a button. This causesViewA
to recalculate itself, which initializesViewBViewModel
again, losing all the changes, including all loaded data from the repository, leaving the user onViewB
with allLoadable
set to.notRequested
, and all viewModel state lost.This also happens if the app state is implemented through a
EnvironmentObject
. If I modify some environment object fromViewB
thatViewA
uses,ViewA
recreates itself, losing all the state onViewBViewModel
.I am also having some issues related to this when navigating back from a view to its predecessor. In some cases, if I navigate from some view
ViewA
to other viewViewB
, when dismissingViewB
,ViewA
gets recalculated, which initializesViewBViewModel
again.Has anyone encountered this behaviour and came to a solution?
The text was updated successfully, but these errors were encountered: