如何在调试模式下禁用红屏

时间:2017-06-27 07:11:01

标签: react-native

使用React Native我希望继续使用debug__DEV__模式但不使用红色屏幕。

有人知道如何禁用它或更改console.error实施吗?

我试过这样的事情:

console.error = {};

或者

console.error = () => {};

但以上都没有奏效。

有什么想法吗?

5 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

将此添加到您应用的入口点JS文件:

import {NativeModules} from 'react-native';
NativeModules.ExceptionsManager = null;

它将禁用负责显示红框窗口的原生模块(reportSoftExceptionreportFatalException来自react-native/Libraries/Core/ExceptionsManager.js

答案 2 :(得分:2)

在阅读本机代码后,我设法用

停止了红屏

console._errorOriginal = console.error.bind(console); console.error = () => {};

答案 3 :(得分:0)

您可以尝试添加

 console.error = (error) => error.apply;

这将解决您的问题

或使用

console.disableYellowBox = true;

如果要禁用警告

答案 4 :(得分:0)

对于React,您可以在Pods (project) -> React (target) -> Build Settings (tab) -> Preprocessor Macros -> Debug Xcode项目中设置预处理器宏。如果您使用的是cocoapods,它将位于RCTLOG_REDBOX_LEVEL=4

设置4,其中RCTLog.h意味着仅致命错误的红色框。

来自/** * Thresholds for logs to display a redbox. You can override these values when debugging * in order to tweak the default logging behavior. */ #ifndef RCTLOG_REDBOX_LEVEL #define RCTLOG_REDBOX_LEVEL RCTLogLevelError #endif

typedef NS_ENUM(NSInteger, RCTLogLevel) {
  RCTLogLevelTrace = 0,
  RCTLogLevelInfo = 1,
  RCTLogLevelWarning = 2,
  RCTLogLevelError = 3,
  RCTLogLevelFatal = 4
};
EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_SSL = True

enter image description here