为什么 NetInfo 不适用于 Web 但适用于 Android (react-native-web)?
Why does NetInfo not work for Web but works for Android (react-native-web)?
当使用 react-native-web 时,NetInfo 在 Android 和 iOS 上工作正常,但不适用于网络。
为了确认 Web 的 运行 代码与 Android 相同,我在控制台登录 componentDidMount
并且 Android 和 Web 都显示文本。然而,这些事件似乎不适用于网络版本。
// src/App.js
import React from 'react';
import { Provider } from 'react-redux';
import store from './utilities/storage/store';
import EntryScreen from './screens/EntryScreen';
import Routing, { Router } from './utilities/routing/index';
import { NetInfo } from 'react-native';
const Route = Routing.Route;
class App extends React.Component {
componentDidMount() {
console.log('App mounted');
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
}
/**
* Listens for any internet connectivity changes.
* @param isConnected The internet connection status
*/
handleConnectivityChange = (isConnected) => {
console.log ('bam');
console.log ('Connected:', isConnected);
};
render() {
return (
<Provider store={store}>
<Router>
<Route path="/" component={EntryScreen} />
</Router>
</Provider>
);
}
}
export default App;
我预计,根据 NetInfo 适用于 Web 的文档以及 Android。如果没有,请有人提供一种方法来做到这一点。
"react": "^16.2.0",
"react-art": "^16.2.0",
"react-dom": "^16.2.0",
"react-native": "0.57.8",
"react-native-web": "0.9.13",
与 iOS 和 Android React Native 相比,网络上的 NetInfo 缺少一些功能。只是没有等效的 Web API。
https://github.com/necolas/react-native-web/blob/master/README.md#modules
当使用 react-native-web 时,NetInfo 在 Android 和 iOS 上工作正常,但不适用于网络。
为了确认 Web 的 运行 代码与 Android 相同,我在控制台登录 componentDidMount
并且 Android 和 Web 都显示文本。然而,这些事件似乎不适用于网络版本。
// src/App.js
import React from 'react';
import { Provider } from 'react-redux';
import store from './utilities/storage/store';
import EntryScreen from './screens/EntryScreen';
import Routing, { Router } from './utilities/routing/index';
import { NetInfo } from 'react-native';
const Route = Routing.Route;
class App extends React.Component {
componentDidMount() {
console.log('App mounted');
NetInfo.isConnected.addEventListener('connectionChange', this.handleConnectivityChange);
}
componentWillUnmount() {
NetInfo.isConnected.removeEventListener('connectionChange', this.handleConnectivityChange);
}
/**
* Listens for any internet connectivity changes.
* @param isConnected The internet connection status
*/
handleConnectivityChange = (isConnected) => {
console.log ('bam');
console.log ('Connected:', isConnected);
};
render() {
return (
<Provider store={store}>
<Router>
<Route path="/" component={EntryScreen} />
</Router>
</Provider>
);
}
}
export default App;
我预计,根据 NetInfo 适用于 Web 的文档以及 Android。如果没有,请有人提供一种方法来做到这一点。
"react": "^16.2.0",
"react-art": "^16.2.0",
"react-dom": "^16.2.0",
"react-native": "0.57.8",
"react-native-web": "0.9.13",
与 iOS 和 Android React Native 相比,网络上的 NetInfo 缺少一些功能。只是没有等效的 Web API。
https://github.com/necolas/react-native-web/blob/master/README.md#modules