0

我有 ReactNative 项目,我正在尝试从 Kotlin 调用简单的 JS 函数(从 JS 调用 Kotlin 工作正常)。我的项目目录如下所示:
在此处输入图像描述

“共享”模块被编译为 commonjs 模块。

在 Main.kt 我有(缩短):

external fun myFun()

在 App.js 我有(缩短):

import * as shared from './shared/build/classes/kotlin/main/shared.js'
export function myFun(){
    console.log("Hello")
} 

所以我试图从 Kotlin 调用 myFun() 来获取 JS 的控制台日志。但我得到例外:

myFun is not defined

我正在寻找这个文档:
https://kotlinlang.org/docs/reference/js-interop.html
https://kotlinlang.org/docs/reference/js-modules.html#applying-jsmodule-to-packages
但是我不确定如何使用这些注释(如果需要它们?)。感谢帮助。

4

1 回答 1

1

我认为你应该用注释你的 kotlin 声明

@JsModule("<module_name>") // seems like it is App
external fun myFun()

并将模块设置为umd像这样的 gradle sript

compileKotlin2Js.kotlinOptions.moduleKind = "umd"
于 2018-05-15T11:10:53.243 回答