MutableStateFlow не обновляется после очистки начального значенияAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 MutableStateFlow не обновляется после очистки начального значения

Сообщение Anonymous »

Я столкнулся с проблемой, при которой состояние в моей модели представления Jetpack Compose сначала сбрасывается правильно, но затем возвращается к старым значениям. Вот соответствующий код:

Код: Выделить всё

data class Item(val stateList: MutableList
 = mutableListOf(), val number: Int)
data class People(val name: String)

class MyViewModel : ViewModel() {
private val _sampleList = MutableStateFlow(Item(mutableListOf(), 0))
val sampleList: StateFlow get() = _sampleList

fun reset() {
viewModelScope.launch {
_sampleList.emit(
sampleList.value.copy(
stateList = mutableListOf(),
number = 0
)
)
}
}
}
Проблема:
При вызове viewModel.reset() состояние изначально кажется очищенным, как и ожидалось. Однако вскоре он возвращается к старым ценностям. Я добавил ведение журнала и заметил, что состояние сначала сбрасывается правильно, но затем снова появляются старые значения.
Вопрос:
Почему состояние возвращается к старым значениям после сброса и как я могу гарантировать, что HomeScreen правильно отображает состояние сброса?

Подробнее здесь: https://stackoverflow.com/questions/788 ... tial-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»