IRedBoxHandler
Typ: interface
IRedBoxHandler bietet eine Erweiterungsmöglichkeit, um benutzerdefinierte Fehlerbehandlung innerhalb der React-Instanz zu ermöglichen. Dies kann nützlich sein, wenn Sie ein bestehendes Fehlermeldungssystem haben, an das React-Fehler gemeldet werden sollen. Die Standardimplementierung von RedBoxHandler zeigt Fehlermeldungen auf einem Fehlerbildschirm an, der das gesamte Anwendungsfenster abdeckt.
Wenn Sie die bestehenden RedBox-Verhaltensweisen beibehalten und Fehler auch an Ihr eigenes Berichtssystem melden möchten, kann Ihre Implementierung die Standardimplementierung von RedBoxHandler aufrufen, die durch Aufrufen von
RedBoxHelper::CreateDefaultHandler(Host);
Beispiel für die Einrichtung eines RedBoxHandler, der Fehler an ein externes System meldet und die Standarderfahrung von RedBox innerhalb der Anwendung anzeigt
class MyRedBoxHandler : IRedBoxHandler
{
MyRedBoxHandler(IRedBoxHandler defaultHandler) {
innerHandler = defaultHandler;
}
public void ShowNewError(IRedBoxErrorInfo info, RedBoxErrorType type) {
// Dont report non-fatal errors (optional)
if (type != RedBoxErrorType.JavaScriptSoft)
ReportErrorToMyErrorReportingSystem(info, type);
// Display errors in app if the instance is running with DevSupportEnabled
if (innerHandler.IsDevSupportEnabled)
innerHandler.ShowNewError(info, type);
}
public bool IsDevSupportEnabled {
get;
}
{
// The default handler will return true if the instance has DevSupport turned on
// But if you want to record error information in released versions of your app
// Then you should return true here, so that all errors get reported.
return true;
}
public void UpdateError(IRedBoxErrorInfo info) {
if (innerHandler.IsDevSupportEnabled)
innerHandler.UpdateError(info);
}
public void DismissRedBox() {
if (innerHandler.IsDevSupportEnabled)
innerHandler.DismissRedBox();
}
private IRedBoxHandler innerHandler;
}
RegisterMyRedBoxHandler()
{
Host.InstanceSettings.RedBoxHandler = new MyRedBoxHandler(RedBoxHelper.CreateDefaultHandler(Host));
}
Eigenschaften
IsDevSupportEnabled
readonly bool IsDevSupportEnabled
Diese Eigenschaft steuert, ob Fehler an den Handler gemeldet werden sollen. Wenn dieser Wert false zurückgibt, werden ShowNewError und UpdateError nicht aufgerufen.
Methoden
DismissRedBox
void DismissRedBox()
ShowNewError
void ShowNewError(IRedBoxErrorInfo info, RedBoxErrorType type)
Diese Methode wird aufgerufen, wenn ein Fehler zum ersten Mal auftritt.
UpdateError
void UpdateError(IRedBoxErrorInfo info)
Diese Methode wird aufgerufen, wenn aktualisierte Informationen zu einem Fehler aufgelöst wurden. Bei JavaScript-Fehlern wird diese Methode aufgerufen, wenn Quellzuordnungsinformationen aufgelöst werden konnten, um einen nützlicheren Aufrufstapel bereitzustellen.