【发布时间】:2019-10-25 00:06:11
【问题描述】:
我正在编写一个 React Native 应用程序,我发现 iOS 模拟器生成的错误消息从未指示我的代码中发生错误的行。在下面的屏幕截图中,我可以看到这是Dashboard 组件中的map() 函数的问题,但是由于它没有给出行号,如果Dashboard 中有多个map() 实例,我不知道如何隔离哪个是抛出错误。 所以我的问题是:
谁能解释一下为什么 React Native 在这种情况下不指示行号?这是 React Native 工作方式的固有属性吗?总是无法识别给定的行(如果是,请尽可能详细地解释原因)?或者有什么方法可以让我以不同的方式构建我的应用程序以显示错误的行号?
谢谢!
【问题讨论】:
-
SceneView.js在第 6 行?也许它就在那里 -
SceneView.js 是一个包装文件,其中包含发生 map() 错误的 Dashboard 组件。它肯定在仪表板文件中。仪表板中 map() 的出现次数很少,我可以通过反复试验来解决问题;我只是想了解为什么它不会生成行号,以防我以后遇到更难自行隔离的问题。
-
你想要的是源地图。可以参考stackoverflow.com/questions/34715106/…
-
另外值得注意的是,顶部文件甚至可能不包含错误,例如有时如果一个组件调用一个抛出错误的钩子,堆栈跟踪可能只显示组件的文件,甚至没有提到包含实际错误的钩子文件
-
@gkeenley,看看工具 Rollbar!在下面链接我的答案。
标签: javascript ios react-native error-handling