簡體   English   中英

如何在 redux saga 中正確檢查網絡狀態

[英]How to properly check network status inside redux saga

在 React Native 中學習了幾個關於 Netinfo 的教程

我基本上想要的是正確監控和檢查網絡是否連接了移動設備。 如果已連接,則返回 true,否則返回 false。

我計划在我的 redux-saga 文件中實現它。

到目前為止,我創建了這個單獨的文件networkutils.js

import NetInfo from '@react-native-community/netinfo';

export default class checkNetwork {
  static async isNetworkAvailable() {
    const response = await NetInfo.fetch();
    return response.isConnected;
  }
}

然后在我的 redux saga 文件中:

const connectionStatus = async () => {
  await checkNetwork.isNetworkAvailable();
};
const isConnected = await connectionStatus();

console.log('status of network >>', isConnected);

即使我在我的 redux saga 函數中調用它,它也總是返回undefined如下所示:

export function* onAuthenticate({payload}) {
// This always returns undefined
const isConnected = yield connectionStatus();
      console.log('isConnected ??', isConnected);
      if (isConnected) {
        yield put(setUserData(userData));
        yield put(authenticateSuccess(userData));
      } else {
        yield put(authenticateError({payload: 'No Internet'}));

知道如何正確檢查 redux saga 中的網絡嗎?

嘗試像這樣返回它:

const connectionStatus = async () => {
  const status = await checkNetwork.isNetworkAvailable();
  return status;
};

看看它是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM