expo + react-native:发送日志消息时出现问题

时间:2019-02-04 04:12:59

标签: android node.js react-native expo

我正在构建一个我最近移到Expo的React-native应用程序。该应用程序似乎显示了预期的屏幕,但是在完成之前,我收到以下错误消息:console.error:“向您的开发环境发送日志消息时发生问题,{” name“:” Error“}”。在查看expo浏览器屏幕时,单击设备时会看到以下堆栈跟踪:

  node_modules/expo/build/logs/LogSerialization.js:146:14 in _captureConsoleStackTrace
  node_modules/expo/build/logs/LogSerialization.js:41:24 in Object.serializeLogDataAsync$
  node_modules/regenerator-runtime/runtime.js:62:39 in tryCatch
  node_modules/regenerator-runtime/runtime.js:288:21 in Generator.invoke [as _invoke]
  node_modules/regenerator-runtime/runtime.js:114:20 in Generator.prototype.(anonymous
  node_modules/regenerator-runtime/runtime.js:62:39 in tryCatch
  node_modules/regenerator-runtime/runtime.js:152:19 in invoke
  node_modules/regenerator-runtime/runtime.js:187:10 in <unknown>
  node_modules/promise/setimmediate/core.js:45:4 in tryCallTwo
  node_modules/promise/setimmediate/core.js:200:12 in doResolve

以下是错误的屏幕截图:

enter image description here

此错误是什么意思?我找到了一些文档,这些文档涉及删除console.log语句,并删除了我拥有的文档,但这没有帮助。

6 个答案:

答案 0 :(得分:9)

今天早上我也遇到了这个奇怪的错误。我正在使用Expo Client开发本机,并使用流行的MERN堆栈(mongoDB,Express,React Native和Node.js)在React Native中进行开发。我要说的是,因为我使用了很多东西,所以我的意思是后端有很多控制台日志,到目前为止,这还没有给我造成任何问题。因此,就我而言,我不确定此错误是否源于我正在使用的任何console.log。我在控制台(端口19001)中检查了expo调试器的stacktrace,因为红色屏幕没有提供有关错误原因的大量信息(很多<unknown>代替了函数),我看到了当我执行与后端通信的特定操作时,这与我的操作功能和要发送到我的减速器的有效负载有关。后端的响应格式如下:

payload: {
  config: {
     .
     .
     .
 }
 data: { the only part that i needed... }
 headers: {
    .
    .
    .
}

..other stuff from the response..

上面没有什么需要注意的,但这是

我感兴趣的实际工资单是在道具键data下,并且是响应中我唯一需要的东西。但是,由于我的无知,我将一切都发送给了我的减速器。因此,我的意思是,我发送了一个很大的object作为payload,而我只需要其中的一部分。因此,当我进行一些销毁并保留上面提到的data时,错误就消失了。

总而言之,对于其他可能偶然发现此“错误”(实际上不是错误)的人,bc应用程序不会崩溃或发生任何事情,因为当您执行某些操作时,您可以关闭窗口并且应用程序继续运行从服务器获取数据,请确保仅保留data对象,而不保留整个response对象,以及调用中的元数据。似乎redux-logger抛出了这个bc,它不喜欢它的结构。

希望对您有帮助。

答案 1 :(得分:4)

为简化上述所有答案,仅当您记录的对象太大而无法显示控制台时,才会发生此问题。因此,当记录来自API或服务器的响应时,请确保添加JSON.stringify(result)。 这为我解决了这个问题。

答案 2 :(得分:3)

在将对控制台的提取调用的结果转储到Reply from <localhost>: Destination host unreachable.时,始终出现此错误。
一旦使用过:

console.log(result)

问题消失了。

答案 3 :(得分:1)

由于其他原因,我也遇到了这个问题。

背景:

项目堆栈(对于该错误而言,重要的是什么):

expo: ^34.0.1 react-native: SDK 34 react-navigation: 4.0.5 react-navigation-drawer: ^2.2.1

在这个项目中,我没有使用react-reduxaxios来使用实际网络中的graphql@apollo/react-hooksapollo-boost来处理网络请求,本地状态管理。

答案:

如您在背景中所见,我正在使用react-navigation。我根据React Navigation API

createDrawerNavigator创建了一个抽屉式导航器

我想使用contentComponent的{​​{1}}属性来创建自定义DrawerNavigatorConfig

我在唯一DrawerNavigatorItems参数的contentComponent属性中放置了匿名箭头功能。

引起此错误:

我在上面提到的匿名箭头功能内放置了一个props

我在iOS模拟器上收到以下错误: `console.error:“向您的开发环境发送日志消息时出现问题”

请参见下面的代码:

console.log()

答案 4 :(得分:0)

我今天遇到了同样的问题,解决方法是添加 response.json()

              fetch(endpoint, {
                method: 'GET',
                headers: {
                  Accept: 'application/json',
                }
              })
                .then(response => response.json())
                .then(response => {
                  console.log('response', response)
                })

答案 5 :(得分:0)

这是 console.log 带来的问题(在 VSCode 中,Ctrl + Shift + F search all 然后输入 console.log 找到它的位置)。

转换自

console.log(error.config);

console.log(JSON.stringify(error.config, null, 2));

null, 2 是为了保持打印漂亮)

enter image description here