首页 > 解决方案 > java.lang.RuntimeException:获取未知参数类:将 JS 数组传递给 java 时的 int[]

问题描述

我正在上 Kotlin 的 RN 课程,但被困在了这个作业上。当我尝试将整数数组从 JS 传递到 Kotlin 时,我收到错误 java.lang.RuntimeException: Got unknown argument class: int[]。

计算器.kt

@ReactMethod
fun getSum(values: IntArray, callback: Callback){
  var total = 0;
  // get total
  callback.invoke( null, total)
}

从 JS 我这样称呼它:

   KTFile.getSum([1,2,3],(err,ok)=>{

   });

如果我正在使用采用单个整数的方法,它会起作用:

 @ReactMethod
    fun getSquare(value: Int, callback: Callback){
      var sqr = 0;
      // get sqr
      callback.invoke( null, sqr)
    }


   KTFile.getSquare(1,(err,ok)=>{

   });

如何将 JS 数组传递给 kotlin/java?

标签: react-nativereact-native-android

解决方案


从 1.1.50 版开始,原始数组转换使用 JavaScript TypedArray。

来自https://kotlinlang.org/docs/reference/js-to-kotlin-interop.html

也许试试这个。

fun getSum(values: Array<Int>, callback: Callback){
      var total = 0;
      // get total
      callback.invoke( null, total)
}

推荐阅读