Kotlin/JS -npm包中的external瓦尔未定义

yeotifhr  于 2023-04-07  发布在  Kotlin
关注(0)|答案(1)|浏览(153)

我尝试在我的Kotlin/js代码中使用CKEditor包中的React组件。
在JavaScript中,我会像这样导入这些:

import { CKEditor } from '@ckeditor/ckeditor5-react';
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';

我已经将这两个依赖项添加到我的build.gradle.kts文件中:

implementation(npm("@ckeditor/ckeditor5-react","5.1.0"))
implementation(npm("@ckeditor/ckeditor5-build-classic", "36.0.1"))

对于CKEditor,它可以很好地导入,我制作了这个文件:

@file:JsModule("@ckeditor/ckeditor5-react")
@file:JsNonModule

import react.*

external interface CKEditorProps : Props {
    //...
}

@JsName("CKEditor")
external val CKEditor: ComponentClass<CKEditorProps>

接下来,我有我的ClassicEditor文件,虽然我已经尝试了许多其他方法:

@file:JsModule("@ckeditor/ckeditor5-build-classic")
@file:JsNonModule

@JsName("default")
external val ClassicEditor: Any

如果我将两者都打印到控制台,我会看到CKEditor是一个类,似乎导入正确。但是,ClassicEditor是未定义的。
ClassicEditor的文档在这里:https://ckeditor.com/docs/ckeditor5/latest/api/module_editor-classic_classiceditor-ClassicEditor.html
我已经检查了gradle依赖项,以确保依赖项存在。

+--- @ckeditor/ckeditor5-react:5.1.0 (n)
\--- @ckeditor/ckeditor5-build-classic:36.0.1 (n)

我尝试过使用external class或其他类型,包括dynamicComponentClassFC等。
我认为@JsName应该是default,但我也尝试过使用ClassicEditor
我对kotlin-js非常陌生,所以我可能错过了一些上下文,但我在网上搜索答案时没有运气。

3zwjbxry

3zwjbxry1#

我不知道为什么,但是从注解中删除file:已经修复了它。

@JsModule("@ckeditor/ckeditor5-build-classic")
@JsNonModule

而不是

@file:JsModule("@ckeditor/ckeditor5-build-classic")
@file:JsNonModule

相关问题