我是反应原生的新手,当我在genymotion中运行react-native run-android sucuessful时,但在应用程序的某个阶段我单击,它显示错误消息,我知道它看起来有些承诺没有捕获犯错误,但更高级的意思我无法估计发生了什么,有谁知道这里发生了什么?
console.error: "Unhandled promise rejection", {"line":34896,"column":24,"sourceURL":"http://10.0.3.2:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false"}
error
YellowBox.js:61
<unknown>
es6.promise.js:117
perform
es6.promise.js:59
<unknown>
es6.promise.js:111
<unknown>
JSTimers.js:100
callTimer
JSTimersExecution.js:95
callImmediatesPass
JSTimersExecution.js:199
callImmediates
JSTimersExecution.js:214
<unknown>
MessageQueue.js:214
guard
MessageQueue.js:46
__callImmediates
MessageQueue.js:214
<unknown>
MessageQueue.js:128
guard
MessageQueue.js:46
invokeCallbackAndReturnFlushedQueue
MessageQueue.js:126
答案 0 :(得分:0)
堆栈跟踪显示错误发生在javascript方面。这实际上是一个警告,而不是错误(如果您正在运行调试版本,您将获得一个YellowBox而不是一个红色屏幕)。它实际上并没有让你的应用程序崩溃,但通常表明某些事情出了问题。
我不知道你对javascript有多熟悉,但基本上,JS承诺可以是resolve
或reject
,你可以指定两个回调函数来处理每个案例。您收到的警告意味着使用reject
完成的承诺,但没有提供回调函数来处理拒绝。您可以阅读有关他们的更多信息here。
对于调试,如果您在应用中点击某些内容时出现警告,我会首先查看任何onPress
回调函数,并确保您传递的任何数据都看起来像您期望的那样。在某些时候,正在调用异步函数,它不喜欢它传递的数据。