我做了npm install socket.io-client
。
然后我导入它,如下所示
import React from 'react-native';
import './UserAgent';
import io from 'socket.io-client/socket.io';
但是当我运行我的应用程序时,我收到以下错误:
需要uknown模块" socket.io-client / socket.io"。如果你确定的话 这个模块在那里,尝试重新启动打包器。
我尝试重新安装并从npm更新。
我重启包装器1000次。
有关为何发生这种情况的任何想法?
答案 0 :(得分:3)
同样的问题,我找到了解决方案。
从
更改代码import io from 'socket.io-client/socket.io';
到
import io from 'socket.io-client/dist/socket.io';
尝试添加 dist 目录。
我几天前遇到同样的问题,并在参考之下解决了这个问题。
参考: https://github.com/reactotron/reactotron/pull/280/commits/d8725351e80093edc4bcfb65d6389a9ba654ff37
答案 1 :(得分:0)
模块为socket.io-client
,所以,
import io from 'socket.io-client'
答案 2 :(得分:0)
对于坚持这一点的每个人,我设法通过在我的项目中包含socket.io.js
独立文件并从那里导入它来修复它。
由于某种原因,RN Packager不会在node_modules
中构建依赖关系。
答案 3 :(得分:0)
我认为您会发现通过导入以这种方式导入SocketIO会遇到问题。
您可以尝试切换到require语法,并确保事先包含必需的userAgent行。
window.navigator.userAgent = 'react-native';
let io = require('socket.io-client/socket.io');
我有一个项目可以做同样的事情,你可以比较,React Native Messenger。
答案 4 :(得分:0)
我正在使用与您相同的代码,没有任何问题。也许你需要升级你的本地反应?我写这篇文章的最新内容是:0.18.0-rc。
答案 5 :(得分:0)
window.navigator.userAgent = 'react-native';
let io = require('../../node_modules/socket.io-client/dist/socket.io');
尝试了我能想到的一切,这是唯一对我有用的东西。
答案 6 :(得分:-1)
验证socket io客户端是否安装在node_modules依赖项中,如果不尝试重新安装依赖项。如果它在那里,那么你可以更新声明
import io from 'socket.io-client/socket.io'
到
import io from 'socket.io-client/dist/socket.io.js'
现在应该可以了。