Lets assume I have an overview page which allows m...
# compose
u
Lets assume I have an overview page which allows me to edit various forms.
When I click through to one of the forms, edit it and save, the
viewState
for that form is changed to
Saved
, and the user is redirected back to the overview. When I go back to that form, I am redirected back to the overview page. In other words the
viewState
is still
Saved
and not reset to it's default. How do I fix this ?
FormScreen.kt:
@Composable
fun MyForm(state: FormState, viewState: FormViewState, navToOverview: () -> Unit) {
when (viewState) {
None  -> ShowForm()
Saved -> navToOverview()
}
}
ComposeNavigation.kt
class ComposeNavigation(
private val navController: NavHostController,
private val formVM:        FormViewModel,
) {
@Composable
fun CreateGraph() {
NavHost(
navController    = navController,
startDestination = NavRoute.Auth.Route
) {
// other composables ...
composable<Routes.Overview.EditForm> {
FormScreen(
formState     = formVM.formState.collectAsState().value,
viewState     = formVM.viewState.collectAsState().value,
navToOverview = { navController.navigate(Routes.Overview.Home) }
)
}
}
}
}
Activity.kt
class Activity : ComponentActivity() {
private val formVM: FormViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val navController = rememberNavController()
val navGraphFactory = ComposeNavigation(
navController,
loginVM
)
val navigator = Navigator()
navigator.setController(navController)
navGraphFactory.CreateGraph()
}
}