MutableLiveData 的预期不可空值

Expected non-nullable value for MutableLiveData

private val _users = MutableLiveData<List<User>>()
val users: LiveData<List<User>> get() = _users

fun getUsers() {
    viewModelScope.launch {
        _users.value = users()
    }
}

suspend fun users(): List<User> {
    TODO("Not implemented")
}

我在 _users.value = users()

上收到以下错误

Expected non-nullable value. Inspection info: This check ensures that LiveData values are not null when explicitly declared as non-nullable.

我正在使用生命周期版本 2.3.1。问题似乎出在挂起函数 users() 上。如果我删除 suspend 修改器它工作正常。

只需使用 private val _users:MutableLiveData<List<User>> = MutableLiveData() 而不是 private val _users = MutableLiveData<List<User>>()

尝试this._users.value = users()。在前面添加 this 对我有用。不知道为什么。在您的情况下,您可能需要 this@yourModel._users.value = users() 因为您在 viewModelScope 中调用它。