undefined 不是一个对象(评估 'RCTWebSockerManager.connect')——React Native

undefined is not an object (evaluating 'RCTWebSockerManager.connect') -- React Native

我一直在关注 guide 如何将现有应用程序与 React Native 集成。

根据我们 IOS 人的建议,我在 IOS 方面采取了一些自由。加载视图时,出现红色错误屏幕 stack trace

(抱歉,post 图片的声誉不足。文本包含在下方。)

    2015-08-27 22:19:37.739 [error][tid:com.facebook.React.JavaScript] 'Warning: Native component for "RCTImageView" does not exist'
    2015-08-27 22:19:37.851 [info][tid:com.facebook.React.JavaScript] 'Running application "SimpleApp" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF'
    2015-08-27 22:19:37.856 [error][tid:com.facebook.React.JavaScript] 'Error: undefined is not an object (evaluating \'RCTWebSocketManager.connect\')
     stack: 
      connectToSocketImpl  index.ios.bundle:14464
      WebSocketBase        index.ios.bundle:14587
      WebSocket            index.ios.bundle:14458
      setupDevtools        index.ios.bundle:46060
      renderApplication    index.ios.bundle:44403
      run                  index.ios.bundle:44295
      runApplication       index.ios.bundle:44323
      __callFunction       index.ios.bundle:5552
      <unknown>            index.ios.bundle:5488
      guard                index.ios.bundle:5441
      <unknown>            index.ios.bundle:5488
      <unknown>            index.ios.bundle:5485
      perform              index.ios.bundle:7033
      batchedUpdates       index.ios.bundle:16454
      batchedUpdates       index.ios.bundle:6336
      <unknown>            index.ios.bundle:5484
      guard                index.ios.bundle:5441
      processBatch         index.ios.bundle:5483
     URL: http://192.168.1.70:8081/index.ios.bundle
     line: 14464
     message: undefined is not an object (evaluating \'RCTWebSocketManager.connect\')'

这是我的 Podfile:

    pod 'FBSDKShareKit'
    pod 'FBSDKCoreKit'
    pod 'FBSDKLoginKit'
    pod 'React'
    pod 'React/RCTText'

("URL:" 被手动更改为那个而不是本地主机,但在浏览器中响应相同。)

当我运行:

(JS_DIR=`pwd`/ReactComponent; cd Pods/React; npm run start -- --root $JS_DIR)

一切运行都很好,日志产生:

[22:32:15] <START> fs crawl
[22:32:16] <END>   fs crawl (744ms)
[22:32:16] <START> Building in-memory fs
[22:32:16] <END>   Building in-memory fs (454ms)
[22:32:16] <START> Building in-memory fs
[22:32:17] <END>   Building in-memory fs (242ms)
[22:32:17] <START> Building Haste Map
[22:32:17] <START> Building (deprecated) Asset Map
[22:32:17] <END>   Building (deprecated) Asset Map (75ms)
[22:32:17] <END>   Building Haste Map (836ms)

一旦我在 xcode ios-模拟器中启动项目,我就会得到上述堆栈跟踪。如果有帮助,我可以包含我的 objective c 代码,但我省略了以防止混乱,因为它似乎是反应依赖项的问题。

谢谢!任何帮助表示赞赏。

你是运行最新的XCode吗?推荐6.3+。

查看要求:https://facebook.github.io/react-native/docs/getting-started.html

我更新到 Xcode 6.4,它修复了我第一次学习本教程时遇到的 RCTWebSocketManager.connect 错误:http://facebook.github.io/react-native/docs/tutorial.html#content

所以我想通了。如果您遇到此问题,请将我的播客文件修复为有效。删除您的 Pods/ 目录,然后使用以下 podfile 再次 运行 pod install 。重新启动开发服务器也是一个很好的措施。

pod 'FBSDKShareKit' pod 'FBSDKCoreKit' pod 'FBSDKLoginKit' pod 'React' pod 'React', :subspecs => [ 'RCTText', 'RCTImage', 'RCTNetwork', 'RCTWebSocket' ]