使用React Native
我希望继续使用debug
或__DEV__
模式但不使用红色屏幕。
有人知道如何禁用它或更改console.error
实施吗?
我试过这样的事情:
console.error = {};
或者
console.error = () => {};
但以上都没有奏效。
有什么想法吗?
答案 0 :(得分:5)
使用:
console.reportErrorsAsExceptions = false;
适合我。
答案 1 :(得分:2)
将此添加到您应用的入口点JS文件:
import {NativeModules} from 'react-native';
NativeModules.ExceptionsManager = null;
它将禁用负责显示红框窗口的原生模块(reportSoftException
或reportFatalException
来自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