2017-03-06 56 views
14

Próbuję użyć react-native-fbsdk w mojej aplikacji natywnej w reakcji. To działało dobrze do wczoraj. Ale dzisiaj daje dziwny błąd stwierdzając, że RCTJSONStringify() napotkał następujący błąd: Niepoprawny typ w JSON write (NSURL).Reakcja natywny błąd RCTJSONStringify() napotkał następujący błąd: Niepoprawny typ w JSON write (NSURL)

RN v0.42.0

Oto mój kod:

_fbAuth(error, result) { 
    if (error) { 
     console.log("error"); 
     alert("login has error: " + result.error); 
    } else if (result.isCancelled) { 
     console.log("login cancelled"); 
     alert("login is cancelled."); 
    } else { 
     AccessToken.getCurrentAccessToken().then((data) => { 
     console.log("login success"); 
     console.log(data.accessToken.toString()); 
     let accessToken = data.accessToken; 
     alert(data.accessToken.toString()); 
     const responseInfoCallback = (error, result) => { 
      if (error) { 
      console.log(error); 
      } else { 
      console.log(result); 
      } 
     } 

     const infoRequest = new GraphRequest(
      '/me', 
      { 
      accessToken: accessToken, 
      parameters: { 
       fields: { 
       string: 'email,name,first_name,middle_name,last_name' 
       } 
      } 
      }, 
      responseInfoCallback 
     ); 

     // Start the graph request. 
     new GraphRequestManager().addRequest(infoRequest).start(); 
     }); 
    } 
    } 

    render() { 
    console.log("in new render"); 
    return (
     <View style={styles.container}> 
     <LoginButton 
     publishPermissions={["publish_actions"]} 
     onLoginFinished={this._fbAuth} 
     onLogoutFinished={() => alert("logout.")}/> 
     </View> 
    ); 
    } 

Informacje o błędzie drukowane w debuggera:

Error message

otrzymuję powyższy błąd podczas wywoływania grafAPAP w funkcji responseInfoCallbac k. Jakieś pomysły, co się dzieje?

Aktualizacja 1:

Ten błąd zdarza się tylko gdy zdalny debugger jest włączony !! Inaczej to się nie dzieje. Ale bez zdalnego debuggera nie mogę kontynuować tworzenia aplikacji. Czy są jakieś inne metody, aby zobaczyć instrukcje dziennika w natywnej aplikacji innej niż zdalny debugger?

Aktualizacja 2:

RCTJSONStringify() błąd zdarza się tylko za pełnomocnika. Ponadto połączenia pobierania HTTPS nie działają w trybie proxy. Testowałem w otwartej sieci, działa dobrze. Przypuszczam, że należy dodać trochę informacji o proxy do aplikacji RN. Myślę, że jest to związane z APP transport security

Odpowiedz

1

Po wyłączeniu debuggera, możesz zobaczyć poprawny błąd w konsoli XCode. Wejdź do niego z menu Xcode View/Debug Area/Aktywuj konsolę, jeśli nie jest włączona automatycznie.

+0

działa! Ale to jest męczące. za każdym razem, gdy klikasz przycisk Uruchom, a zakończenie aplikacji zajmuje kilka minut. Zgaduję, że błąd wynika z problemów z serwerem proxy, ponieważ nie mogę wykonywać żadnych połączeń sieciowych. –

+0

I na dodatek używam redux-logger, który wygląda tajemniczo w konsoli xcode. Trochę frustrujące w pracy z konsolami Xcode, a nie z debugerem RN. –