![](/img/trans.png)
[英]Scala Scala.js importing JavaScript module gives error 'method value is not a member of'
[英]importing static javascript functions into scala.js
在第三方库 react-native-fbsdk-next 我有一个文件 FBAccessToken.ts 下面的 class 有一些普通成员和一个 static 成员 ZC1C425268E68385D14AB5074C17Z9。
class FBAccessToken {
accessToken: string;
permissions: Array<string>;
static getCurrentAccessToken() {
return new Promise<FBAccessToken | null>((resolve) => {
...
}
}
}
export default FBAccessToken;
我需要同时导入 class 成员以及 static function。
我的策略是像这样使用 scala class 和伴侣 object
@native
@JSImport("react-native-fbsdk-next", "FBAccessToken")
class FBAccessToken extends js.Object {
def accessToken: String = native
def permissions: Array[String] = native
}
@native
@JSImport("react-native-fbsdk-next", "FBAccessToken")
object FBAccessToken extends js.Object {
def getCurrentAccessToken: Promise[FBAccessToken | Null] = native
}
但是 static function 到伴侣 object 导入似乎不起作用。 sbt fastOptJs
工作但在模拟器中运行应用程序时我得到
TypeError: undefined is not an object (evaluating '_$$_REQUIRE(_dependencyMap[4], "react-native-fbsdk-next").FBAccessToken.getCurrentAccessToken')
我究竟做错了什么?
FBAccessToken
在 JavaScript 库中的default
导出下导出:
export default FBAccessToken;
而不是以其自己的名称"FBAccessToken"
。
因此,当从 Scala.js 导入它时,您必须使用JSImport.Default
作为@JSImport
的第二个参数:
@JSImport("react-native-fbsdk-next", JSImport.Default)
这适用于class
和object
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.