在本机中断开网络连接

时间:2020-03-23 16:49:11

标签: react-native

当我在登录页面上时,如果断开网络连接,则必须仅在登录页面上导航到没有网屏,而不是整个移动应用程序。

NetInfo.isConnected.addEventListener(
  "connectionChange",
  this.handleConnectivityChange
);

componentWillUnmount() {
  NetInfo.isConnected.removeEventListener(
    "connectionChange",
    this.handleConnectivityChange
  );
}

handleConnectivityChange = isConnected => {
  if (isConnected) {
    this.props.navigation.navigate(SCREENS.LOGIN);
  } else {
    this.props.navigation.navigate(SCREENS.NO_INTERNET_MESSAGE);
  }
};

1 个答案:

答案 0 :(得分:0)

仅在登录组件中侦听Internet连接,而不在应用程序中的每个组件以及App类中侦听Internet连接。

在您的登录组件中:

handleConnectivityChange = isConnected => {
  if (isConnected) {
    // just write your login process
  } else {
    this.props.navigation.navigate(SCREENS.NO_INTERNET_MESSAGE);
  }
};

否则,每当没有互联网时,每个组件都会被重定向到您的登录页面,并自动重定向到no_internet屏幕。