首页 > 解决方案 > 是状态仅针对 Android 中的 @Composable 设计?

问题描述

我已阅读文章

似乎State<T>是为@Composable.

在其他类中使用是否更好,State<T>例如ViewModel

标签: androidandroid-jetpack-compose

解决方案


的,作为androidx.compose.runtime包装的一部分State<T>确实是作为可组合物的价值持有者。

如果您想在ViewModelsComposables中发布/发送和使用“状态”,您可能需要查看StateFlow 和 SharedFlow

您可以collect像使用任何 kotlin 一样Flow<T>使用它们,并collectAsState在 compose 函数中使用它们。

@Composable
fun YourComposable() {
    val myState by viewModel.stats.collectAsState()
}

推荐阅读