Results
interface ResultManager {
fun result(key: String): Any?
fun setResult(key: String, result: Any)
fun clearResult(key: String)
}data class Result(val item: String)
@Composable
fun HomeScreen() {
val navigator = requireLocalNavigator()
val result = navigator.result<Result>()
Column {
Text(text = "Result: $result")
Button(onClick = {
navigator.setResult<Result>(UUID.randomUUID().toString)
}) {
Text(text = "Refresh Result")
}
Button(onClick = {
navigator.clearResult<Result>()
}) {
Text(text = "Clear Result")
}
}
}
@Composable
fun AnotherScreen() {
val navigator = requireLocalNavigator()
Button(onClick = {
navigator.setResult<Result>(UUID.randomUUID().toString())
navigator.pop()
}) {
Text(text = "Return Result")
}
}Survive state restoration
Passing data between different navigators
Last updated