我正在使用 react-native-app 中的react-native-meteor模块将其连接到Meteor服务器。
在App.js中调用以下函数时,
Meteor.connect('ws://192.168.x.x:3000/websocket');
我遇到此错误
Invariant Violation: NetInfo has been removed from React.Native.It can now be installed and imported from 'react-native-netinfo'
NetInfo Issue此处已打开一个问题,但尚未解决。
答案 0 :(得分:0)
NetInfo已从react-native核心中删除。应该使用以下命令将其安装为独立的依赖项:
yarn add @react-native-community/netinfo
or:
npm install --save @react-native-community/netinfo
在此github link 上可以找到分步说明
我遵循了上述链接中提到的这些步骤,但是并不能完全解决问题。在深入研究问题之后,我发现在 node_modules / react-native-meteor / src / Meteor.js 中, 他们仍从'react-native'导入NetInfo并使用旧功能
import { Platform, View, NetInfo } from 'react-native';
NetInfo.isConnected.fetch().then(
(connected ) => {
if(connected)
NetInfo.isConnected.addEventListener('connectionChange', isConnected => {
if (isConnected && Data.ddp.autoReconnect) {
Data.ddp.connect();
}
});
}
);
已被淘汰。
必须从 @ react-native-community / netinfo 中导入
在 node_modules / react-native-meteor / src / Meteor.js 中进行以下更改之后。
错误修复:
import { Platform, View } from 'react-native';
import NetInfo from "@react-native-community/netinfo";
NetInfo.fetch().then(state => {
console.log("Connection type", state.type);
console.log("Is connected?", state.isConnected);
let isConnected = state.isConnected;
if(isConnected)
NetInfo.isConnected.addEventListener('connectionChange', isConnected => {
if (isConnected && Data.ddp.autoReconnect) {
Data.ddp.connect();
}
});
});
答案 1 :(得分:0)
ImFarhad仍然对您有用吗?使用对meteor.js所做的更改,我收到错误“ RNCNetInfo.getCurrentState得到3个参数,预期为2”。您知道解决这个问题的方法吗?