React-native: RCTBridge requirió dispatch_sync para cargar RCTDevLoadingView. Esto puede dar lugar a interbloqueos

Creado en 15 oct. 2017  ·  106Comentarios  ·  Fuente: facebook/react-native

Recibo aleatoriamente esta advertencia al iniciar la aplicación iOS (es decir, no siempre).

¿Es este un informe de error?

si

¿Ha leído las Pautas de contribución ?

si

Medio ambiente

SO: macOS Sierra 10.12.6
Nodo: 6.10.2
Hilado: 1.0.2
npm: 5.4.2
Vigilante: 4.7.0
Xcode: Xcode 9.0 Build versión 9A235
Estudio de Android: 2.1 AI-143.2915827

Paquetes: (deseado => instalado)
reaccionar: ^ 16.0.0 => 16.0.0
react-native: ^ 0.49.3 => 0.49.3

Pasos para reproducir

  1. Inicie la aplicación

    Comportamiento esperado

Sin advertencia

Comportamiento real

capture d ecran 2017-10-15 12 49 45

Demo reproducible

N / A

Algunos paquetes que uso

https://github.com/antoinerousseau/react-native-custom-components
https://github.com/rebeccahughes/react-native-device-info
https://github.com/evollu/react-native-fcm
https://github.com/gwmccull/react-native-polyfill
https://github.com/getsentry/react-native-sentry

Bug iOS

Comentario más útil

Deje de agregar +1 s, esto genera notificaciones por correo electrónico que no agregan ninguna información. En su lugar, utilice la función "agregar reacción".

Todos 106 comentarios

¡Igual que aquí!

tengo este problema amarillo para iOS

Yo también veo esto. Posiblemente relacionado con # 11196.
Creo que esto es lo que también está causando que la aplicación se bloquee al intentar recargar; falla con
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This method must not be called before the JS thread is created'

También recibo este error de vez en cuando en iOS 11 y no tengo idea de cómo depurarlo para dar más información. Stacktrace no ayuda en absoluto en este caso.

+1

+1

Deje de agregar +1 s, esto genera notificaciones por correo electrónico que no agregan ninguna información. En su lugar, utilice la función "agregar reacción".

Mismo problema. Estos son los paquetes que utilizo:

  • react-native-device-info
  • reaccionar-nativo-interactuar
  • reaccionar-información-sensible-nativa
  • reaccionar-nativo-snackbar
  • reaccionar-nativa-pantalla-de-bienvenida
  • reaccionar-nativo-svg
  • react-native-vector-icons

Dada la intersección con la lista de @antoinerousseau , las posibles ubicaciones de este error son:

  • Un error en react-native en sí
  • Un error en react-native-device-info
  • Varios errores en bibliotecas distintas de react-native-device-info

Acabo de agregar react-native-device-info y pasé de rn 0.49 a 0.50. y ahora encontré este error. No sé si es el problema, pero es cuando lo recibí.

Mismo problema ...
¿Entonces no fue mi culpa?

Mismo problema ... ¿Tienes alguna solución?

Mismo problema. El único paquete de la lista anterior que usamos es react-native-sentry .

El mismo problema aquí hoy comencé una nueva aplicación y el único paquete que he agregado
"native-base": "^ 2.3.3",
"reaccionar": "16.0.0",
"react-native": "0.50.3",
"react-native-fcm": "^ 10.0.3"

@rizzomichaelg
+1
"react-native": "0.49.3",
La aplicación se bloqueó cuando se cargó por primera vez al azar.

alguien lo resolvió ??

@dantman Comencé a ver el problema inmediatamente después de instalar react-native-device-info, por lo que sospecho que el problema está relacionado, al menos en nuestro caso, con ese paquete específico.

El único otro paquete que estoy usando react-native-keychain, que instalé hace bastante tiempo sin ningún problema, parece una buena apuesta.

rebeccahughes / react-native-device-info # 260 parece tener un mensaje que hace referencia a RNDeviceInfo mientras que este error se refiere a RCTDevLoadingView . Por lo tanto, puede haber más de un punto que active esta advertencia.

Si pusiera un punto de interrupción en la siguiente línea:

RCTLogWarn(@"RCTBridge required dispatch_sync to load %@. This may lead to deadlocks", _moduleClass);

Puede ver qué módulo / pila es responsable de cargar RCTDevLoadingView en mi caso fue RCTCxxBridge.mm que estaba cargando el paquete remoto e informando el progreso de la descarga en RCTDevLoadingView :

... onProgress:^(RCTLoadingProgress *progressData) {
#if RCT_DEV && __has_include("RCTDevLoadingView.h")
      RCTDevLoadingView *loadingView = [weakSelf moduleForClass:[RCTDevLoadingView class]];
      [loadingView updateProgress:progressData];
#endif
    }];

Aquí el RCTCxxBridge está usando moduleForClass que cargará una instancia del módulo si aún no está disponible. Debido a la cola utilizada para el bloque onProgress RCTDevLoadingView se cargaría en una cola no principal, mientras que RCTDevLoadingView requiere una configuración de cola principal.

Pude solucionar la advertencia cargando de manera optimista RCTDevLoadingView devolviendo una instancia de mi RCTBridgeDelegate usando:
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge;

Pude solucionar la advertencia actualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

react-nativo: 0.50.4
mismo problema ...

react-native: 0.51.0
mismo problema ...

"reaccionar": "16.2.0",
"react-native": "0.52.0",
mismo problema ...

"reaccionar": "16.2.0",
"react-native": "0.51.0",
"react-native-device-info": "0.13.0"

Mi solución aquí fue mover react-native-device-info fuera del archivo de pod y vincularlo manualmente en el proyecto. Eso pareció resolver el problema. Creo que otro enfoque podría ser incluir CxxBridge como una subespecificación para React en el archivo de pod, pero eso requiere Folly (y por lo tanto boost), y toda esa configuración es engorrosa / lleva mucho tiempo. Si desea una solución rápida, simplemente elimine de pod los paquetes que causan el problema.

No se instaló "react-native-device-info":
Existe un problema en 0.54.2:

"reaccionar": "16.3.0-alpha.2",
"react-native": "0.54.2",
"react-native-action-button": "^ 2.8.4",
"react-native-admob": "^ 2.0.0-beta.4",
"react-native-animatable": "^ 1.2.4",
"react-native-awesome-alerts": "^ 1.0.7",
"react-native-elements": "^ 0.19.0",
"react-native-fbsdk": "^ 0.7.0",
"react-native-linear-gradient": "^ 2.4.0",
"react-native-parallax-scroll-view": "^ 0.21.0",
"react-native-photo-grid": "0.0.2",
"react-native-responsive-dimensiones": "^ 1.0.2",
"react-native-snap-carousel": "^ 3.6.0",
"react-native-vector-icons": "^ 4.5.0",
"react-navigation": "^ 1.5.7"

Fue con el "react-native-action-button": "^ 2.8.4", agregando shadowStyle={{shadowOpacity: 0.9}} solucionó la advertencia ..

El mismo problema aquí.

Mismo problema.
RN 0.54.4

¿Alguien tiene la solución?

El error se produce incluso para proyectos recién creados.

"reaccionar": "16.3.1",
"react-native": "0.54.4"

mismo

+1

@antoinerousseau ¿ alguna actualización sobre este tema?

No recomendaría la solución proporcionada por @devburmistro. Para mi proyecto, su inclusión creó algún tipo de condición de carrera en la que este error de afirmación se manifestaría aleatoriamente al inicio al ejecutarlo desde el simulador.

Mi configuración:

react-native-cli: 2.0.1
react-native: 0.53.0

Comencé a tener este problema justo ahora después de configurar mi repositorio desde cero e insertar el código js puro allí. Una posible diferencia entre el repositorio anterior y este nuevo es que ahora estoy usando Cocoapods.

¿Alguien no usa Cocoapods?

Esto sucedió justo después de que agregué

reaccionar-desenfoque-nativo

a una vista de extensión compartida, anidada en

react-native-modalbox

@Babazon, ¿estás usando un depurador cuando esto sucede?

Lo siento. No pude depurar / registrar la consola desde la vista Compartir extensión, solo la aplicación principal.

+1

¡Gracias por publicar esto! Parece que su problema puede referirse a una versión anterior de React Native. ¿Puede reproducir el problema en la última versión, v0.55 ?

Gracias por sus aportaciones.

El problema de @ react-native-bot sigue ocurriendo en React Native 0.55

@ react-native-bot Al usar cocoapods para administrar react native, el problema aparecerá.

versiones que pruebo 0.50.4 y 0.55.4

Acabo de instalar react-native-svg en React Native 0.55.3 y apareció este problema.

screen shot 2018-05-30 at 16 04 07

problema que sigue ocurriendo en:

react-native-cli: 2.0.1
react-nativo: 0.55.4

Tengo exactamente la misma advertencia con un nuevo proyecto creado sin ningún código agregado, pero solo las dependencias de Firebase inyectadas.
Estoy usando: reaccionar: 16.3.1
react-nativo: 0.55.4
Gracias

Tengo el mismo problema pero, para mí, fue debido a que la ventana de terminal anterior se estaba ejecutando cuando volví a ejecutar la compilación desde Xcode. Simplemente salí de la terminal y del simulador y ejecuté la compilación nuevamente, este problema se resolvió.

También tengo instalado react-native-device-info, pero el mensaje amarillo es ligeramente diferente para mí: 'RCTBridge requirió dispatch_sync para cargar RCCManagerModule ...'

Iba a decir que recibo esta advertencia cuando map sobre una matriz para devolver nuevos elementos o pasar un style prop a componentes personalizados, pero ahora la advertencia parece impredecible.

También encontré este problema en OS11.

  • reaccionar-navegación
  • react-native-vector-icons

Veo a algunas personas aquí que han mencionado el uso de iconos vectoriales.

También tuve el mismo problema para mí. Desvincular y eliminar react-native-device-info y ahora esa advertencia no aparece.

Tuve el mismo problema después de agregar react-native-vector-icons, lo eliminé y la advertencia desapareció.

Para su información, esta advertencia apareció hoy después de la recarga con el depurador remoto activado. Apagó el control remoto, se recargó, sin advertencia. Volvió a encender el control remoto, se recargó, sin advertencia.

Para su información, esta advertencia apareció hoy después de la recarga con el depurador remoto activado. Apagó el control remoto, se recargó, sin advertencia. Volvió a encender el control remoto, se recargó, sin advertencia.

~ Después de leer el comentario de @mokriya, recargué el depurador y dejó de mostrar la advertencia. Es posible que moverse entre Android y el emulador / simulador de IOS con la pestaña del depurador abierta en el navegador esté causando esto. ~

No, eso no

iOS 12, RN 0.57.0 mismo problema.

como resolver
o ignorar es?

import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings(['RCTBridge']);

Sí, también tengo este problema después de agregar react-native-video, pero ¿qué significa? No parece evitar que se reproduzcan los videos. Además, ¿por qué todos estos componentes de terceros están causando el error? ¿Nos falta algo en el desarrollo de nuestros módulos nativos?

Obteniendo el mismo problema en iOS 12.1, RN 0.57.4 sin react-native-device-info

Tengo algún problema

"lodash": "^4.17.10",
"react": "16.4.1",
"react-native": "0.56.0",
"react-native-check-box": "^2.1.0",
"react-native-collapsible": "^1.2.1",
"react-native-elements": "^0.19.1",
"react-native-google-analytics-bridge": "^5.8.0",
"react-native-google-places-autocomplete": "^1.3.9",
"react-native-map-clustering": "^1.3.0",
"react-native-maps": "^0.21.0",
"react-native-masked-text": "^1.7.2",
"react-native-modal-picker": "0.0.16",
"react-native-onesignal": "^3.2.8",
"react-native-simple-radio-button": "^2.7.2",
"react-native-svg": "^8.0.0",
"react-native-ui-kitten": "^3.0.1",
"react-native-vector-icons": "^5.0.0",
"react-navigation": "^2.11.2",
"rn-sliding-up-panel": "^1.2.1",
"victory-native": "^30.5.0"

En IOS, obtener "RCTBridge requiere dispatch_snyc para cargar RCTDevLoadingView. Esto puede conducir a interbloqueos".

Quizás deberías Project -> Clean en tu Xcode y luego volver a ejecutar tu aplicación.

He confirmado que este comentario es la solución. ¡Gracias @mattijsf!

Busque su RCTBridgeDelegate y anule el método extraModulesForBridge .

C objetivo

<strong i="11">@interface</strong> MyBridgeDelegate : NSObject <RCTBridgeDelegate>
<strong i="12">@end</strong>

<strong i="13">@implementation</strong> MyBridgeDelegate

- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge
{
  return @[
#if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]],
#endif
  ];
}

<strong i="14">@end</strong>

Rápido 4

class MyBridgeDelegate: NSObject, RCTBridgeDelegate {
  func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
    var modules: [Any]! = []
    if RCT_DEV == 1 {
      modules.append(bridge.module(for: RCTDevLoadingView.self))
    }
    return modules as? [RCTBridgeModule]
  }
}

Repro en iOS12, RN 0.57.8

image
mi dependencia, el mismo problema

@aleclarson, ¿qué hace exactamente ese código?

@ccorcos Carga el RCTDevLoadingView antes, por lo que no tiene que bloquear el hilo principal cuando lo carga RN. Este comentario podría ser una solución más sencilla para ti.

No estoy seguro de si esto todavía les está sucediendo a otros, pero todavía me está sucediendo con RN 0.57.8 + iOS 11.3 (al menos)

Estoy usando el cambio del comentario anterior de @devburmistro con éxito

Frente a este problema

RN 0.58.3
iOS 11.4, 12.1

y conduce a un punto muerto. Me pasa cuando cierro modal personalizado

No he tenido esto en el anterior 0.57.8, lo cual estaba bien

Lo mismo aquí, obteniendo esto después de actualizar a RN 0.58.3

mi error exacto es: Unable find module for DevLoadingView , las soluciones anteriores no me lo solucionan

screen shot 2019-01-30 at 0 54 04

Parece relacionado con este compromiso, que de hecho se ha agregado en RN 0.58.3

https://github.com/facebook/react-native/commit/d7a0c44590bcf3fb9d055aeae3391d5bcd7e21be#diff -a2a67635fffd7b690d14dc17ae563a71

Estoy experimentando el mismo problema "No se puede encontrar el módulo para DevLoadingView" que @oferRounds después de actualizar a RN 0.58.3 hoy.

Parece activarse cuando una aplicación se abre por primera vez en el simulador. Las recargas posteriores (cmd-R) no presentan el error.

EDITAR: presentó un problema separado para este error específico: # 23235

También puedo confirmar que esto sigue siendo un problema en iOS con 0.58.3.

Algunas observaciones interesantes:

  • Como dijo @superguineapig , no aparece después de volver a cargar la aplicación.
  • Si sale de todas las instancias de terminal y crea la aplicación / inicia el empaquetador de nuevo, _no_ mostrará el error. Sin embargo, si mantiene abierto el empaquetador y vuelve a compilar la aplicación desde Xcode, el error aparece después de que la aplicación se adjunta nuevamente al empaquetador.

_Editar: puedo confirmar que esta solución sigue siendo una solución viable.

Pude solucionar la advertencia actualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

Esto funcionó para mí.

¿Alguien ha podido registrar un RCTBridgeDelegate personalizado mientras usa react-native-navigation? Debería poder pasar un delegado a través del parámetro bridgeManagerDelegate , pero parece roto (el RCTBridge proporcionado a extraModulesForBridge es siempre nil ).

Comencé a recibir esto inmediatamente después de agregar react-native-device-info en RN 0.58.6 e iOS 12.

Bien, este comentario parece haberlo arreglado para mí.

Reaccionar nativo 0.59.1

Empiezo a ver esta advertencia justo después de instalar react-native-device-info también, ¿alguna solución real?

También veo esto al azar, y no he realizado cambios en el código de mi aplicación más que lo necesario (configuración) para que todo funcione nuevamente, al actualizar de RN 0.57.8 a 0.59.5. En mi caso, la lib en cuestión es CodePush, con 2 advertencias de caja amarilla:

RCTBridge required dispatch_sync to load CodePush. This may lead to deadlocks
y
Required dispatch_sync to load constants for CodePush. This may lead to deadlocks

Este número es largo. ¿Asumo que precisar la causa raíz sigue siendo un misterio? Hágame saber qué otra información de depuración puedo proporcionar para ayudar.


Mi paquete.json:

{
  "name": "wonderswipe",
  "version": "0.0.1",
  "private": true,
  "eslintConfig": {
    "parserOptions": {
      "ecmaVersion": 7,
      "sourceType": "module",
      "ecmaFeatures": {
        "jsx": true
      }
    },
    "env": {
      "browser": false,
      "node": true
    },
    "plugins": [
      "react",
      "react-native",
      "react-hooks"
    ],
    "rules": {
      "comma-dangle": [
        2,
        "always-multiline"
      ],
      "semi": [
        2,
        "never"
      ],
      "react-native/no-unused-styles": 2,
      "react-native/split-platform-components": 2,
      "react-hooks/rules-of-hooks": "error"
    }
  },
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "postinstall": "patch-package"
  },
  "dependencies": {
    "@postlight/mercury-parser": "^2.0.0",
    "@react-native-community/async-storage": "^1.3.3",
    "@react-native-community/viewpager": "^1.1.6",
    "babel-plugin-idx": "^2.4.0",
    "buffer": "^5.2.1",
    "he": "^1.1.0",
    "idx": "^2.5.5",
    "lodash": "^4.17.2",
    "moment": "^2.19.0",
    "moment-timezone": "^0.5.10",
    "node-summary": "../node-summary",
    "react": "16.8.3",
    "react-native": "^0.59.4",
    "react-native-actionsheet": "^2.4.2",
    "react-native-blur": "^3.2.0",
    "react-native-cached-image": "../react-native-cached-image",
    "react-native-cheerio": "^1.0.0-rc.4",
    "react-native-code-push": "^5.3",
    "react-native-custom-tabs": "^0.1.7",
    "react-native-easy-toast": "^1.0.9",
    "react-native-firebase": "^5.3.1",
    "react-native-fit-image": "^1.4.8",
    "react-native-flanimatedimage": "^0.4.0",
    "react-native-highlight-words": "^1.0.1",
    "react-native-keep-awake": "^4.0.0",
    "react-native-linear-gradient": "^2.0.0",
    "react-native-modal-dropdown": "^0.6.2",
    "react-native-modalbox": "^1.6.0",
    "react-native-orientation": "^3.1.3",
    "react-native-parallax-scroll-view": "../react-native-parallax-scroll-view",
    "react-native-rate": "^1.0.8",
    "react-native-safari-view": "^2.0.0",
    "react-native-sentry": "^0.42.0",
    "react-native-sha256": "^1.1.1",
    "react-native-status-bar-size": "^0.3.2",
    "react-native-swiper": "^1.5.14",
    "react-native-tooltip": "^5.2.0",
    "react-native-tts": "^3.0.0",
    "react-native-vector-icons": "^6.4.2",
    "react-native-webview": "^5.7.0",
    "react-native-webview-bridge": "^0.40.1",
    "react-redux": "^7.0.1",
    "redux": "^4.0.0",
    "redux-thunk": "^2.1.0"
  },
  "devDependencies": {
    "babel-eslint": "^10.0.1",
    "eslint": "^5.15.1",
    "eslint-plugin-react": "^7.12.4",
    "eslint-plugin-react-hooks": "^1.0.1",
    "eslint-plugin-react-native": "^3.6.0",
    "patch-package": "^6.1.2",
    "postinstall-postinstall": "^2.0.0",
    "redux-logger": "^3.0.6"
  },
  "resolutions": {
    "babel-core": "7.0.0-bridge.0"
  }
}

image

Arreglé este error con el comentario de

En react-native 0.59.3, este es el aspecto que debería tener el código para solucionar el problema:

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  #if RCT_DEV
    [bridge moduleForClass:[RCTDevLoadingView class]];
  #endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"YourAppName"
                                            initialProperties:nil];

Enfrentando la misma advertencia después de actualizar el archivo AppDelegate.m mientras se integra el mapa de Google react-native-maps en la aplicación ios.
"react-native": "0.59.5"

Para mí, esto funcionó ---
"reaccionar": "16.8.3",
"react-native": "0.59.9",
Archivo AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
//  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
//                                                   moduleName:@"mobileapp"
//                                            initialProperties:nil];


  NSURL *theurl ;
#if DEBUG
  theurl = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  theurl = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif

  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:theurl
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"mobileapp"
                                            initialProperties:nil];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

@ amitkumar3968 formatea tu comentario como código

Acabo de recibir un error similar:
Screenshot 2019-07-23 at 10 27 04


mi paquete.json:

{
  "name": "auth",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint ."
  },
  "dependencies": {
    "firebase": "^6.3.1",
    "react": "16.8.6",
    "react-native": "0.60.0"
  },
  "devDependencies": {
    "@babel/core": "7.5.0",
    "@babel/runtime": "7.5.0",
    "@react-native-community/eslint-config": "0.0.3",
    "babel-jest": "24.8.0",
    "eslint": "6.0.1",
    "jest": "24.8.0",
    "metro-react-native-babel-preset": "0.54.1",
    "react-test-renderer": "16.8.6"
  },
  "jest": {
    "preset": "react-native"
  }
}

Reload lo solucionó, pero parece que algo no está bien si esto sucede al azar.

Este problema solo me ocurre cuando desactivo el depurador. Al abrir el Monitor de rendimiento, noté que la RAM va de ± 100 MB a ± 300 MB después de desactivarlo.

Con depurador:
Screen Shot 2019-07-25 at 9 07 45 AM

Sin depurador:
Screen Shot 2019-07-25 at 9 08 09 AM

La solución alternativa propuesta no funciona en mi caso, ya que solo deja de mostrar la advertencia, pero no resuelve el problema con la memoria.

Me pregunto si este problema afectaría el rendimiento de la aplicación en el modo de lanzamiento.

La solución alternativa antes mencionada me resolvió este problema también, en React Native 0.59.10 :

diff --git a/ios/Foo/AppDelegate.m b/ios/Foo/AppDelegate.m
index e446e79..2c28719 100644
--- a/ios/Foo/AppDelegate.m
+++ b/ios/Foo/AppDelegate.m
@@ -18,6 +18,11 @@

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

+// https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+#if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+#import <React/RCTDevLoadingView.h>
+#endif
+
 <strong i="7">@implementation</strong> AppDelegate

@@ -39,6 +44,13 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(

   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
+
+  // https://github.com/facebook/react-native/issues/16376#issuecomment-350523177
+  #if RCT_DEV && __has_include(<React/RCTDevLoadingView.h>)
+  [bridge moduleForClass:[RCTDevLoadingView class]];
+  #endif
+
   RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge moduleName:@"Foo" initialProperties:nil];
   rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

La única diferencia aquí es que coincidí exactamente con la misma lógica para cargarlo (la parte RCT_DEV && __has_include(<React/RCTDevLoadingView.h>) ) ...

Acabo de obtener 2 con react-native-firebase . Ocurre raramente pero:
image
image

Pude volver a crear este problema agregando íconos de aplicaciones al directorio Images.xcassets/AppIcon.appiconset de mi proyecto de prueba recién creado usando react-native 0.61.2. Agregar las líneas de código mencionadas en este problema resolvió el problema para mí.

react-native 0.59.10
mismo problema.

mismo problema aquí !! ¿Algún organismo resolvió este problema?

Pude solucionar la advertencia actualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

esta solución resolvió la advertencia. Muchas gracias.

El mismo problema, pero si elimino el bloque de código componentDidUpdate, esta advertencia desaparece. Pero pero pero pero necesito componentDidUpdate.

primero: abra Xcode, normalmente Xcode responda si desea instalar un componente: haga clic en instalar

Cuando actualiza el software macOS, debe abrir Xcode para actualizar

Pude solucionar la advertencia actualizando AppDelegate.m

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"Test"
                                            initialProperties:nil];
  ...
}

@grossingdev ¿cuál es jsCodeLocation por favor? Sé que se supone que es una URL, pero ¿a qué debería apuntar?

Acabo de obtener 2 con react-native-firebase . Ocurre raramente pero:
image
image

Firebase me está causando este error. ¿Te importaría compartir cómo lo resolviste? @fungilacion

@ abdi4 También me encontré con esto, ¿

@zloka no, esto sucede al azar y no puedo recrearlo

La forma más sencilla de ignorar esta o cualquier otra advertencia es

import { YellowBox } from 'react-native';

YellowBox.ignoreWarnings([
    'RCTBridge'
]);

Este problema surge para mí de forma no determinista. La única solución que tengo cuando lo hace es eliminar la aplicación de mi dispositivo y volver a ejecutarla.

Solución rápida:

let bridge = RCTBridge (bundleURL: jsCodeLocation, moduleProvider: nil, launchOptions: nil)
#if RCT_DEV
puente? .module (para: RCTDevLoadingView.self)
#terminara si
let rootView = RCTRootView (bridge: bridge !, moduleName: "AppMain", initialProperties: nil)

Hola, parece que no ha habido actividad sobre este tema recientemente. ¿Se ha solucionado el problema o aún requiere la atención de la comunidad? Este problema puede cerrarse si no se produce más actividad. También puede etiquetar este problema como "Discusión" o agregarlo al "Backlog" y lo dejaré abierto. Gracias por sus aportaciones.

Hola, parece que no ha habido actividad sobre este tema recientemente. ¿Se ha solucionado el problema o aún requiere la atención de la comunidad? Este problema puede cerrarse si no se produce más actividad. También puede etiquetar este problema como "Discusión" o agregarlo al "Backlog" y lo dejaré abierto. Gracias por sus aportaciones.

Esta es tu actividad. La advertencia sigue apareciendo en nuevas aplicaciones nuevas.

@sospedra ¿ podría proporcionar un repositorio de que esto suceda con la plantilla React Native sin dependencias externas?

Para los casos en los que sucede con bibliotecas de terceros, los problemas deben archivarse con esas bibliotecas

mismo problema en 0.63.2 No estoy seguro de qué lo está causando, sucede al azar a veces todas las interacciones de la aplicación ya no funcionan.

La misma advertencia viene solo con react-native-macos en recargas (manuales) de Metro , no en la actualización de cambios de código, y no con ios, android o windows.
NB: para mí con RN 0.62.2

Recibí la misma advertencia con una aplicación Catalyst.

Cerré el simulador, maté metro, en XCode build and run Advertencia desapareció!

Cerrar el paquete de metro y desinstalar la aplicación del simulador desapareció la advertencia. Pero no estoy seguro de qué está pasando debajo del capó. La advertencia apareció después de agregar el paquete procesador.

¿Fue útil esta página
0 / 5 - 0 calificaciones