RCTBatchedBridge.m Erreur: Message de données invalide – tous doivent être de longueur:% zd. Réagissez Native, simulateur iOS

J'utilise react-native-oauth et react-native-oauth cette erreur (voir l'image rouge en bas) lorsque j'essaie d'autoriser. J'ai cherché et trouvé seulement cette question sans réponse semblable . J'ai regardé dans la source et ai trouvé où l'erreur est augmentée sur la ligne 954 et il semble que c'est parce que moduleIDs.count devrait égaler methodIDs.count et paramsArrays.count :

  if (RCT_DEBUG && (moduleIDs.count != methodIDs.count || moduleIDs.count != paramsArrays.count)) { RCTLogError(@"Invalid data message - all must be length: %zd", moduleIDs.count); 

Donc, toujours dans la source , je cherche ces objects et les trouve définis juste au-dessus, sur les lignes 943-945 et ils utilisent RCTConvert, dont les fonctions "… tous acceptent une valeur JSON en input et la mappent à un objective natif -C type ou class. " – Les documents de React

Il semble donc que ce soit une erreur liée au réseau et / ou au réseau. Mais je n'ai pratiquement aucune connaissance dans ces domaines et je sens que j'ai fait obstacle à l'enquête et je me demandais si quelqu'un avait des idées pour aller de l'avant. Etre novice à React Native et n'avoir jamais fait d'Objective-C ne m'aide pas.

Aussi, voici mon code générant les erreurs.

 import OAuthManager from 'react-native-oauth'; import { Alert } from 'react-native' var env = require('../environment.js') const config = { facebook: { client_id: env.getKey("FB_ID"), client_Secret: env.getKey("FB_SECRET") } } const manager = new OAuthManager('myAppName') manager.configure(config); exports.authWithFb = () => { manager.authorize('facebook') .then(resp => Alert.alert('response!' + resp)) .catch(err => Alert.alert('error msg here: ' + err)); } 

Je suppose que cette erreur non définie est liée à l'erreur RCTBridge mais pas sûr. Vous pouvez voir ci-dessous quand je alerte l'erreur de manager.authorize . TypeError: undefined is not an object (evaluating 'fn') :

entrez la description de l'image ici cette erreur

Modifier:

Lorsque j'essaie d'Alerter l'object config , j'obtiens une erreur sur le fait de ne pas être capable de ssortingngifier son sous-object. entrez la description de l'image ici

Lorsque vous regardez dans la console dans le débogueur chrome, j'obtiens "Impossible de lire la propriété 'configureProvider' de undefined" et configureProvider() est ce que react-native-oauth utilise donc il semble que le gestionnaire n'est pas configuré la bibliothèque bien. Avoir vérifié la binding a fonctionné.

Im creuser dans les erreurs un peu et il semble comme un problème lié à la promise / callback de NativeModules.OAuthManager . L'erreur TypeError: Cannot read property 'authorize' of undefined est: TypeError: Cannot read property 'authorize' of undefined . Quand je saute dans la trace de la stack, je trouve: entrez la description de l'image ici

Toute aide est très appréciée, merci.

Donc, pour moi, tout ce qui n'allait pas était un problème d'installation avec react-native-oauth parce que tout s'est react-native-oauth depuis que je suis revenu à un point où mon code n'avait pas d'autres dependencies (j'ai aussi installé Firestack) à nouveau en suivant les docs de react-native-oauth. J'ai réalisé qu'il y avait un pas du côté d'iOS / XCode que j'avais manqué parce que quand j'ai essayé à l'origine je ne pouvais pas find le file alors j'ai simplement sauté cette étape:

De readme-native-oauth readme

Ensuite, accédez à la section "Build Phases" des parameters du projet, trouvez la list déroulante "Link Binary with Library", développez-la et click "+" pour append libOAuthManager.a à la list.

Les erreurs que je recevais étaient à quelques pas de cela mais je suis sûr que je suis connecté d'une manière ou d'une autre. Leçons apsockets: n'essayez pas de faire trop de choses à la fois et ne sautez pas les étapes requirejses.

Vous obtiendrez cette erreur lorsque vous enverrez des données erronées dans le côté natif. Par exemple si vous devez passer une string mais que vous avez passé un object.

Veuillez consoler.log votre variable de config .

https://www.npmjs.com/package/react-native-oauth

Je suppose que vous êtes envoyé de mauvaises données dans le côté natif