Tom
05/01/2022, 8:45 PMRobert Jaros
05/08/2022, 3:09 PMMutableState
you can't do this directly. KVision doesn't provide a sub
equivalent for MutableState
.Robert Jaros
05/08/2022, 3:10 PMRobert Jaros
05/08/2022, 3:12 PMdata class State(val range: Int, val other: String)
val mainState = ObservableValue(State(5, "test"))
val subState = object : MutableState<Int> {
override fun setState(state: Int) {
mainState.setState(mainState.getState().copy(range = state))
}
override fun getState(): Int {
return mainState.getState().range
}
override fun subscribe(observer: (Int) -> Unit): () -> Unit {
return mainState.subscribe {
observer(it.range)
}
}
}
root("kvapp") {
div().bind(mainState) {
+"Range: ${it.range}"
}
range(min = 0, max = 10).bindTo(subState)
button("test").onClick {
subState.setState(8)
}
}