我正在构建一个 Jetpack Compose Deskop 应用程序,目前草稿如下所示:
1
和2
是两个ViewModel
:
// 1
class FilterViewModel {
val query = mutableStateOf<String?>(null)
val timeframe = mutableStateOf("Any")
}
// 2
class GridViewModel {
val items = mutableListOf("foo", "bar", "baz")
}
我希望
GridViewModel
在 items
更改时更新其 FilterViewModel
。在这种情况下我该怎么做? Jetpack Compose Deskop 是否可以提供任何东西,或者也许有一些更通用的解决方案?
考虑定义一个“数据层”,例如组合远程和/或本地数据源的存储库。从链接的文档:
UI层包含UI相关的状态和UI逻辑,而数据层 包含应用程序数据和业务逻辑。这里的想法是,是的,您在来自
FilterViewModel
的查询/搜索中需要像“Number”这样的本地数据,并且还需要在列表中的项目中显示带有“Number”的结果。然而,通过数据层和数据驱动架构,它们都可以成为 ViewModel 中的实时数据片段,在数据层中观察相同的单一事实源。一般层次结构:
FilterViewModel
NumbersRepo
<->、TimeframeRepo
、QueryRepo
FilterViewModel
CurrentItemsRepo
GridViewModel
CurrentItemsRepo