当我尝试调试本机时,它通常看起来像这样。
at ReactCompositeComponentWrapper._renderValidatedComponentWithoutOwnerOrContext (ReactCompositeComponent.js:785)
at ReactCompositeComponentWrapper._renderValidatedComponent (ReactCompositeComponent.js:811)
at ReactCompositeComponentWrapper._updateRenderedComponent (ReactCompositeComponent.js:735)
at ReactCompositeComponentWrapper._performComponentUpdate (ReactCompositeComponent.js:715)
at ReactCompositeComponentWrapper.updateComponent (ReactCompositeComponent.js:634)
at ReactCompositeComponentWrapper.receiveComponent (ReactCompositeComponent.js:534)
at Object.receiveComponent (ReactReconciler.js:131)
at ReactCompositeComponentWrapper._updateRenderedComponent (ReactCompositeComponent.js:737)
没有有用的信息,如果我使用debugger
命令来查看启动50深度调用堆栈的内容,那么它几乎总是归结为`debuggerWorker.js'中的onmessage
方法,它几乎没有用。
你如何真正调试你的本机应用程序?
onmessage = function(message) {
var object = message.data;
var sendReply = function(result) {
postMessage({replyID: object.id, result: result});
};
var handler = messageHandlers[object.method];
if (handler) {
// Special cased handlers
handler(object, sendReply);
} else {
// Other methods get called on the bridge
var returnValue = [[], [], [], 0];
try {
if (typeof __fbBatchedBridge === 'object') {
returnValue = __fbBatchedBridge[object.method].apply(null, object.arguments);
}
} finally {
sendReply(JSON.stringify(returnValue));
}
}
};
答案 0 :(得分:0)
我倾向于使用堆栈跟踪来找出发生错误的一般区域,然后使用Web调试器来实际找出错误的位置。
https://facebook.github.io/react-native/docs/debugging.html#chrome-developer-tools
它实际上相当不错,您可以在chrome dev工具的sources选项卡中打开所有js文件,然后将调试点放入并直接浏览文件并查看变量。