代碼A中有兩個變數b1和b2,似乎都是String變數,你可以在圖片A中看到。
問題1: private var b1 = "a1"和private var b2 by mutableStateOf("a1")之間有什么區別?
代碼A
class TodoViewModel : ViewModel(){
private var b1 = "a1"
private var b2 by mutableStateOf("a1"/span>)
BTW
還有更多
。問題3:在文章中,作者為什么不用private var currentEditPosition = mutableStateOf(-1)而用private var currentEditPosition1 by mutableStateOf(-1)?
uj5u.com熱心網友回復:
mutableStateOf是一個可觀察的狀態保持者,它的值的變化通知它的觀察者。在某種意義上,你可以認為它類似于LiveData。
當你想讓你的UI對你的狀態變化做出反應時,你可以使用mutableStateOf,如果你有一個讀取你的b2值的composable,就像在這個例子中一樣
Text(
text = b2.value
)
然后通過改變你的mutableStateOf,文本可組合將自動重新組合并更新其內容。
uj5u.com熱心網友回復:
b1是一個普通的String,當值發生變化時,使用該變數的可組合物將不會自動重新組合或更新。
b2實際上是一個MutableState<String>,當值發生變化時,使用該變數的任何組件將被自動重新組合。
你看不出它的區別,因為你使用Kotlin委托by來分配b2變數。如果你使用=來分配一個帶有mutableStateOf的變數,你應該使用variable.value來獲取和設定值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/311883.html
標籤:


