3

我正在关注 sendbird 的关于使用 react-native 构建聊天应用程序的教程,当我尝试导入 sendbird sdk 时出现以下错误:

Unable to resolve module http from .../SendbirdSample/node_modules/sendbird/SendBird.min.js: 
Unable to find this module in its module map or any of the node_modules/http and its parent directories

我删除了 node_modules 文件夹并再次运行 npm install,清理了 npm 缓存并清除了 watchman 手表,但无法修复它。

对这个问题有什么想法吗?

更新:添加代码

main.js

import React from 'react';
import {
  StyleSheet,
  Navigator
} from 'react-native';

var Login = require('./components/login');
var Channels = require('./components/channels');

var ROUTES = {
  login: Login,
  channels: Channels
};

module.exports = React.createClass({
 renderScene: function(route, navigator) {
  var Component = ROUTES[route.name];
  return <Component route={route} navigator={navigator} />;
 },
 render: function() {
  return (
    <Navigator
      style = { styles.container }
      initialRoute={ {name:'login'} }
      renderScene={this.renderScene }
      configureScene={ () => { return Navigator.SceneConfigs.FloatFromRight; } } />
  );
}});

登录.js

import React from 'react';

import {
  StyleSheet,
  Navigator
} from 'react-native';

var Login = require('./components/login');
var Channels = require('./components/channels');

var ROUTES = {
  login: Login,
  channels: Channels
};

module.exports = React.createClass({
  renderScene: function(route, navigator) {
   var Component = ROUTES[route.name];
    return <Component route={route} navigator={navigator} />;
  },
  render: function() {
      return (
       <Navigator
        style = { styles.container }
        initialRoute={ {name:'login'} }
        renderScene={this.renderScene }
        configureScene={ () => { return Navigator.SceneConfigs.FloatFromRight; } } />
  );
 }
});

频道.js

import React from 'react';

import {
  View,
  Text,
  StyleSheet
} from 'react-native';

var sendbird = require('sendbird');

module.exports = React.createClass({
  render: function() {
    return (
      <View style={styles.container}>
        <Text style={{color: '#fff'}}>Channels</Text>
      </View>
    );
  }
});
4

2 回答 2

6

尝试使用较早版本的 SendBird 的 JS SDK。根据我自己的测试,SDK v. 2.4.19 中引入了这个问题。我的设置适用于 sendbird@2.4.18 和 react-native@0.27.2。

这个问题在补丁中的突然出现强烈表明 SDK 中存在错误或引入了未记录的 API 更改 ( changelog ),这基本上也是一个错误。


要安装特定版本的 npm 包:

npm i --save PACKAGE_NAME@MAJOR.MINOR.PATCH,例如

npm i --save sendbird@2.4.18.

您可以通过运行查看所有可用版本的 sdk

npm info sendbird.

于 2016-07-19T09:33:18.943 回答
1

当我报告同样的问题时,我从 Sendbird 那里得到的官方消息。我还没有尝试过新发布的 3.0。所以不能这么说。

Harry Kim (SendBird) 7 月 6 日,太平洋夏令时间 01:51

感谢您联系 SendBird 支持。

我们建议使用以下软件包来正确运行 SendBird。

"react-native": "0.20.0",
"react-native-button": "1.4.2",
"react-native-gifted-messenger": "0.0.18",
"react-native-gifted-spinner": "0.0.3",
"react-native-popup": "0.5.2",
"sendbird": "^2.4.20"

问候,哈利

于 2016-09-24T20:07:05.033 回答