2017-03-06 156 views
14

我正尝试在我的react-native应用程序中使用react-native-fbsdk。它一直工作得很好,直到昨天。但是,今天它给出了一个奇怪的错误,说明RCTJSONStringify()遇到以下错误:JSON写入(NSURL)中的无效类型。react-native错误RCTJSONStringify()遇到以下错误:JSON写入(NSURL)中的无效类型

RN v0.42.0

这里是我的代码:

_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> 
    ); 
    } 

印在调试器的错误信息:

Error message

我得到上述错误同时呼吁函数中的graphAPI responseInfoCallbac k。任何想法发生了什么?

更新1:

此错误发生,只有当远程调试器被接通!!否则它不会发生。但没有远程调试器,我无法继续开发应用程序。除远程调试器外,还有其他方法可以查看react-native应用程序的日志语句吗?

更新2:

的RCTJSONStringify()错误发生仅次于代理。并且https访存调用在代理下也不起作用。我在一个开放的网络中测试,它工作正常。我想,这是添加一些代理信息给RN应用程序。我认为它与APP transport security

回答

1

如果关闭调试器,可以在XCode控制台中看到正确的错误。从Xcode菜单查看/调试区域/激活控制台(如果它未自动启用)。

+0

它的工作原理!但这是令人厌烦的。每次点击运行按钮,完成应用程序需要几分钟的时间。我猜这个错误是由于代理问题,因为我不能做任何网络调用。 –

+0

最重要的是,我使用了redux-logger,它在xcode控制台中看起来很神秘。有点令人沮丧的工作在Xcode控制台而不是RN调试器。 –