Junior — Middle
Como atualizar o valor da propriedade State na arquitetura MVI?
sobes.tech IA
Resposta da IA
Na arquitetura MVI (Model-View-Intent), o estado (State) geralmente é um objeto imutável. Para atualizar o valor de uma propriedade do State, cria-se um novo objeto de estado com os dados modificados, e então esse novo objeto é passado para o fluxo de dados (por exemplo, através de LiveData, StateFlow ou RxJava), que está inscrito nas atualizações da interface do usuário.
Exemplo em Kotlin usando data class e StateFlow:
// Definição do estado
data class ViewState(val isLoading: Boolean, val data: List<String>)
// No ViewModel
private val _state = MutableStateFlow(ViewState(isLoading = false, data = emptyList()))
val state: StateFlow<ViewState> = _state
fun loadData() {
_state.value = _state.value.copy(isLoading = true)
// após carregar os dados
_state.value = _state.value.copy(isLoading = false, data = listOf("item1", "item2"))
}
Dessa forma, a atualização ocorre através da criação de uma nova instância do estado usando o método copy, o que garante imutabilidade e previsibilidade do estado.