首页 > 解决方案 > 了解节点引用错误转储

问题描述

试图通过理解错误转储来更好地了解如何调试。例如,我有一个参考错误如下:

ReferenceError: Can't find variable: title

This error is located at:
    in TimerForm (at ToggleTimerForm.js:44)
    in RCTView (at View.js:60)
    in View (at ToggleTimerForm.js:42)
    in ToggleableTimerForm (at App.js:54)
    in RCTView (at View.js:60)
    in View (at ScrollView.js:791)
    in RCTScrollView (at ScrollView.js:887)
    in ScrollView (at App.js:53)
    in RCTView (at View.js:60)
    in View (at App.js:47)
    in App (at registerRootComponent.js:35)
    in RootErrorBoundary (at registerRootComponent.js:34)
    in ExpoRootComponent (at renderApplication.js:33)
    in RCTView (at View.js:60)
    in View (at AppContainer.js:102)
    in RCTView (at View.js:60)
    in View (at AppContainer.js:122)
    in AppContainer (at renderApplication.js:32)

* components/TimerForm.js:54:6 in render
- node_modules/react-proxy/modules/createPrototypeProxy.js:44:35 in proxiedMethod
- node_modules/react-native/Libraries/Renderer/ReactNativeRenderer-dev.js:8811:23 in finishClassComponent
- ... 17 more stack frames from framework internals

本能地,我看的第一个地方是 TimerForm,但后来我看到 ToggleTimerForm.js 也列出来了。'in' 是什么意思,'at' 是什么意思?另外,为什么列出这么多文件?它们在这个错误转储中的意义是什么?

希望更好地了解这一切是如何运作的!

标签: node.jserror-handlingruntime-error

解决方案


这基本上只是一个调用堆栈,一个相互调用的函数链。通常,您希望查看最新的简单错误,但通常您可能需要向上走几层才能理解逻辑。

请注意,调用堆栈可能以不同的方式显示,具体取决于框架。在这种情况下,您看到的是 react 调用堆栈,而不是 vanilla node.js 堆栈。


推荐阅读