如何在 Jetpack Compose 中获取刀柄在 activity 之外的视图模型

How to get view model with hilt outside activity in jetpack compose

所以我有一个名为“ListScreen”的 kotlin 文件(它不是 class!只是一个具有可组合函数的 .kt 文件),我正在使用组合导航图系统处理事务。 现在我正在尝试从“ListScreen”文件访问我的 ViewModel,它用 @HiltViewModel 表示。 显然,在过去,有一种方法可以像这样访问 ViewModelsviewModel: PokemonListViewModel = hiltNavGraphViewModels() 但这现在不起作用。我该怎么做?

这是我的 ViewModel class:

@HiltViewModel
class PokemonListViewModel @Inject constructor(
private val repository: PokemonRepository
) : ViewModel() {


fun calcDominantColor(
    drawable: Drawable,
    onFinish: (Color) -> Unit
) {
    val bmp = (drawable as BitmapDrawable).bitmap.copy(Bitmap.Config.ARGB_8888, true)

    Palette.from(bmp).generate { palette ->
        palette?.dominantSwatch?.rgb?.let {
            onFinish(Color(it))

        }

    }
}
}

这是不起作用的代码块:

 @Composable
fun PokedexEntry(
    entry: PokedexListEntry,
    navController: NavController,
    modifier: Modifier = Modifier,
    viewModel: PokemonListViewModel = hiltNavGraphViewModels()

) 

hiltNavGraphViewModels() 现已删除。请改用 hiltViewModel()。

来自 android 文档。

Deprecated: Use hiltViewModel() instead.. Replace with: "hiltViewModel()".

https://developer.android.com/reference/kotlin/androidx/hilt/navigation/compose/package-summary#hiltNavGraphViewModel()