![](/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.