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

React native 如何在调试模式下禁用红屏,react-native,React Native,使用React Native我想继续在debug或\uuu DEV\uu模式下工作,但不使用红色屏幕 有人知道如何禁用它或更改控制台。错误实现吗 我尝试过这样做: console.error = {}; 或 但上述措施都不起作用 有什么想法吗?您可以尝试添加 console.error = (error) => error.apply; 这会解决你的问题 或使用 console.disableYellowBox = true; 如果要禁用警告,请将其添加到应用程序的入口点JS文件中

使用
React Native
我想继续在
debug
\uuu DEV\uu
模式下工作,但不使用红色屏幕

有人知道如何禁用它或更改控制台。错误实现吗

我尝试过这样做:

console.error = {};

但上述措施都不起作用

有什么想法吗?

您可以尝试添加

 console.error = (error) => error.apply;
这会解决你的问题

或使用

console.disableYellowBox = true;

如果要禁用警告,请将其添加到应用程序的入口点JS文件中:

import {NativeModules} from 'react-native';
NativeModules.ExceptionsManager = null;
它将禁用负责显示红框窗口的本机模块(
reportSoftException
,或从
react native/Libraries/Core/exceptionmanager.js

调用的
reportFatalException

使用:

console.reportErrorsAsExceptions = false;


适合我。

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

console.\u errorOriginal=console.error.bind(console);

console.error=()=>{}

对于
iOS
,您可以在
React
Xcode项目中设置预处理器宏。如果您使用的是cocoapods,它将位于
Pods(项目)->React(目标)->构建设置(选项卡)->预处理器宏->调试

设置
RCTLOG\u REDBOX\u LEVEL=4
,其中
4
仅表示致命错误的REDBOX

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

谢谢师父,但它不起作用。我的异常抛出是因为没有足够的
NSAssert
lmao,没有一个答案对我有效。确保您正在将其粘贴到主渲染函数中。如何使用它?@Anuj只需将其放置在主index.js文件中即可。谢谢。我刚刚创建了发布版本,所以它可以正常工作。
/**
 * 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
};