【发布时间】:2021-08-31 16:08:04
【问题描述】:
我有一个单一的活动应用程序,只使用 UI 的可组合项(一个活动,没有片段)。我使用一个视图模型将 ui 的数据保存在两个不同的屏幕(可组合)中。如state documentation
中所述,我在两个屏幕中都创建了视图模型@Composable
fun HelloScreen(helloViewModel: HelloViewModel = viewModel())
现在我注意到在第一个屏幕中加载或设置的数据在第二个屏幕中被重置。
我还注意到每次调用viewModel() 时都会调用init{}。这真的是预期的行为吗?
根据方法的documentation,它应该返回现有的 ViewModel 或创建一个新的。
我还看到视图模型是不同的对象。所以viewModel() 总是创建一个新的。但为什么呢?
有什么想法我可能做错了吗?还是我误解了方法的用法?
【问题讨论】:
标签: android kotlin android-jetpack-compose