我是ReactNative的新手。在开发本机模块时,我遇到了回调问题。下面是来自ReactNative的错误消息
02-05 17:43:26.387 32301-32570/com.awesomeproject2 E/ReactNativeJNI: Got JS Exception: Exception calling object as function: abc,function f1() {
_ToastExample2.default.show('1111', _ToastExample2.default.SHORT);
},72,73 is not usable as a native method argument (<unknown file>:1845)
02-05 17:43:26.387 32301-32570/com.awesomeproject2 E/ReactNativeJNI: Got JS Stack: invariant@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:1838:26
enqueueNativeCall@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2259:20
fn@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:1999:40
onBtnPress@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:58362:32
proxiedMethod@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:34324:37
proxiedMethod@[native code]
touchableHandlePress@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:37170:47
touchableHandlePress@[native code]
_performSideEffectsForTransition@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:36821:36
_performSideEffectsForTransition@[native code]
_receiveSignal@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:36754:46
_receiveSignal@[native code]
touchableHandleResponderRelease@http://localhost:8081/index.delta?platform=android&dev=true&
02-05 17:43:26.393 32301-32570/com.awesomeproject2 E/unknown:ReactNative: Exception in native call
java.lang.RuntimeException: Error calling RCTEventEmitter.receiveTouches
at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:31)
at android.os.Looper.loop(Looper.java:135)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
at java.lang.Thread.run(Thread.java:818)
Caused by: com.facebook.jni.CppException: Exception calling object as function: abc,function f1() {
_ToastExample2.default.show('1111', _ToastExample2.default.SHORT);
},72,73 is not usable as a native method argument (<unknown file>:1845)
... 7 more
我的原生模块看起来像这样
@ReactMethod
public void testCallback(String message, Callback c1, Callback c2, Callback c3) {
if (message.equals("123")) {
c1.invoke(message);
} else if (message.equals("abc")) {
c2.invoke(message);
} else {
c3.invoke(message);
}
}
我的react调用函数
onBtnPress() {
function f1 () {
ToastExample.show('1111', ToastExample.SHORT);
};
function f2 () {
ToastExample.show('2222', ToastExample.SHORT);
};
function f3 () {
ToastExample.show('3333', ToastExample.SHORT);
};
ToastExample.testCallback('abc', f1, f2, f3);
}
我不知道为什么会发生这个错误,有人能帮助我吗?谢谢。
3条答案
按热度按时间1mrurvl11#
我有3个回调的相同异常。如果你使用一个或两个回调,它工作正常
@ReactMethod public void testCallback(字符串消息,回调c1,回调c2)
工场
ipakzgxi2#
我在将Axios与formData字段一起使用时遇到了这个问题,而没有将附加的数据转换为字符串格式。
给出错误:
格式必须为:
qlfbtfca3#
当你传递一些不合适的信息给属性时,就会出现这种错误。例如,我没有传递准确的格式给ImageURI属性,因为它抛出了错误。这个错误很大程度上就是它本身的指示。
好吧,我知道了
但当你做这样的事时
大多数情况下,当您从API获得错误的数据格式时,就会发生这种情况。
我的答案不适合这个特定的问题,但为了找出确切的标题,我已经登陆这个链接不同的时间,所以为了保存别人的时间,我想在这里张贴这个答案。