我想在我的 Kotlin-React 应用程序中使用像 bootstrap/material 这样的 css 库。有没有办法导入那些外部 css 库?有一个Kotlin 风格的包装器,但不知道如何使用它来导入 css。
1 回答
这不是直接回答如何导入一段外部 CSS,而是让我向您展示我如何成功地将Material UI库与 Kotlin 和 React 一起使用。这是该项目的演示:https ://krzema12.github.io/fsynth/
请参阅为 Material UI 组件键入的示例 Kotlin:
@file:JsModule("@material-ui/core/ListItem")
package it.krzeminski.fsynth.typings.materialui.widgets
import react.RProps
import react.RState
import react.ReactElement
@JsName("default")
external class ListItem : react.Component<RProps, RState> {
override fun render(): ReactElement?
}
(来源:https ://github.com/krzema12/fsynth/blob/master/web/src/main/kotlin/it/krzeminski/fsynth/typings/materialui/widgets/ListItem.kt )
和一个方便的包装:
fun RBuilder.materialListItem(handler: RHandler<RProps>) = child(ListItem::class) {
handler()
}
(来源:https ://github.com/krzema12/fsynth/blob/master/web/src/main/kotlin/it/krzeminski/fsynth/typings/MaterialUiBuilders.kt#L42 )
然后我可以通过以下方式使用这个组件:
materialListItem {
...children...
}
(来源:https ://github.com/krzema12/fsynth/blob/master/web/src/main/kotlin/it/krzeminski/fsynth/App.kt )
根据我从Material UI 的这个文档页面的理解,它可以工作并且足够了,因为 CSS 嵌入在 JavaScript 中。