2

使用 react-native-web 时,NetInfo 适用于 Android 和 iOS,但不适用于 web。

为了确认为 Web 运行的代码与 Android 相同,我登录控制台,componentDidMountAndroid 和 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",
4

1 回答 1

2

与 iOS 和 Android React Native 相比,Web 上的 NetInfo 缺少一些功能。只是没有等效的 Web API。

https://github.com/necolas/react-native-web/blob/master/README.md#modules

于 2019-01-21T01:31:21.433 回答