Как использовать Composables из Common в Compose Web?

Я создал простой веб-проект Compose, используя руководство по началу работы . Он работает только при использовании веб-API, поэтому Composables, напримерDivиSpan.

Однако весь смысл мультиплатформенности заключается в возможности повторного использования компонентов, поэтому я добавил модули и (Compose Desktop, а не Android). Я могу использовать Composables изjvmвсе в порядке, но когда я использую их в веб-проекте, я получаю ошибки в консоли браузера:CompositionLocal X not present, где X включает в себяLocalDensity,LocalLayoutDirection,LocalViewConfiguration,LocalFontFamilyResolverиLocalInputManager. Возможно, я смогу предоставить их по одному, но это всего лишь настройка, которая должна быть автоматической. Итак, что я могу сделать, чтобы использовать свойcommonСоставные части вjsс Compose Web?

The build.gradle.ktsфайл содержит:

      plugins {
  kotlin("multiplatform")
  id("org.jetbrains.compose")
}

kotlin {
  jvm("desktop") { ... }
  js(IR) {
    browser()
    binaries.executable()
  }
  sourceSets {
    val commonMain by getting { 
      dependencies {
        api(compose.runtime)
        api(compose.foundation)
        api(compose.material)
      }
    }
    val desktopMain by getting { ... }
    val jsMain by getting { 
      dependencies {
        api(compose.web.core)
        api(compose.runtime)
      }
    }
  }
}
// plus the afterEvaluate workaround from the guide, which isn't relevant for this question

В настоящее время использую Kotlin 1.8.10 и Compose 1.3.1.

0 ответов

Другие вопросы по тегам