如何在 Kotlin Desktop 中加载 ViewModel?

问题描述 投票:0回答:1

我有一个基于 JetBrains Compose 的 Android 和桌面多平台应用程序。在

common
模块中,我有屏幕(作为可组合函数),其 ViewModel 继承自 dev.icerock.moko.mvvm.viewmodel.ViewModel:

import dev.icerock.moko.mvvm.viewmodel.ViewModel

class MyIpViewModel() : ViewModel() {

    // Some logic
}

屏幕:

@Composable
fun MyScreen() {
    val viewModel = // How to load MyScreenViewModel() here?

    Column {
        // Screen content
    }
}

我需要在屏幕内加载 ViewModel。在 Android 中,可以添加依赖项

androidx.lifecycle:lifecycle-viewmodel-compose
,然后使用
ViewModelProvider
加载 ViewModel。但如何在 Koltin Desktop 中使用 ViewModel?

viewmodel kotlin-multiplatform jetbrains-compose compose-multiplatform kotlin-desktop
1个回答
0
投票

Compose Multiplatform 1.6.10 添加了对常见 ViewModel 的支持。

参见官方文档

kotlin {
    sourceSets {
        commonMain.dependencies {
            implementation("org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0")
@Composable
fun MyComposable(
    viewModel: MyViewModel = viewModel { MyViewModel() },
) {
    // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.