繁体   English   中英

Jetpack Compose 和 ViewModel-Instantiation

[英]Jetpack Compose and ViewModel-Instantiation

有人可以解释一下这行代码:

fun NotesApp(noteViewModel: NoteViewModel = viewModel()) {

默认参数让我感到困惑。 继承自 ViewModel 的 class 称为 NoteViewModel。 默认参数不会是:NoteViewModel()?

但它仍然有效。 这怎么可能?

它是 Composable 中视图模型的默认初始化器。 它接受一个类型参数,所以我认为您在上面发布的内容还不够。

例如,如果你想初始化一个MainViewModel ,它会是这样的

val vm = viewModel<MainViewModel>()

它应该返回视图模型的相同实例,它是在过去创建的。

它之所以有效,是因为 function viewModel()提供了该视图模型。 我假设它来自androidx.lifecycle.viewmodel.compose package。

返回现有 ViewModel 或在给定所有者(通常是片段或活动)中创建新视图模型,默认为 LocalViewModelStoreOwner 提供的所有者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM