如何解决在 Jetpack Compose -> Composable 函数中使用输入参数启动 ViewModel
我有一个以字符串作为参数的 ViewModel
class ComplimentIdeasViewModel(ideaCategory : String) : ViewModel() {
//some code here
}
在不使用 ViewModel 工厂和 Hilt 的情况下,在可组合的乐趣中启动此 ViewModel 的最佳方法是什么?一个简单的语句似乎在可组合的乐趣中实现了这一点
@Composable
fun SampleComposableFun() {
val compIdeasViewModel = remember { ComplimentIdeasViewModel("someCategory") }
}
当我尝试这样做时,Android studio 中没有警告,但这似乎太容易了,我可以在没有依赖注入和 ViewModelFactory 类的情况下做到这一点。我在这里遗漏了什么吗?
解决方法
这不会为您提供正确的实例,如果 viewmodel.查看您是否在视图模型中存储了一些状态,然后使用工厂进行初始化是必要的,以确保您获得当前存在的视图模型的相同和最新副本。没有错误,因为语法实现是正确的。我不知道有什么方法可以做到这一点,因为大多数时候,您不需要这样做。为什么不在顶级容器中初始化它,比如活动?然后在需要的地方传递它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。