Avatar ·

委托错误:Jetpack Compose 中 State<List<User>?> 没有 getValue 方法

你好!我正在学习 Jetpack Compose,并尝试使用 mutableStateListOf 来管理用户列表,但遇到了一个奇怪的编译错误。

这是我的代码:

class MyViewModel : ViewModel() {
    var users: MutableStateList<User?> = mutableStateListOf()
    
    fun loadUsers() {
        viewModelScope.launch {
            val result = api.getUsers() // List<User>
            users.clear()
            users.addAll(result)
        }
    }
}

@Composable
fun UserListScreen(viewModel: MyViewModel) {
    val users by viewModel.users // <--- 这里出错
    LazyColumn {
        items(users) { user ->
            Text(user?.name ?: "未知")
        }
    }
}

编译器报错:

类型 'MutableStateList<User?>' 没有方法 'getValue(Nothing?, KProperty<*>)',因此不能作为委托使用

我之前已经用过 by 委托,但这次不行。