簡體   English   中英

在 redux-saga 中獲取 api 數據

[英]Fetch api data in redux-saga

我想用 redux-saga 獲取 api 數據。

這是我如何稱呼我的 api:

 export const getData = () => {
    agent
      .get(
        "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?CMC_PRO_API_KEY=XXX"
      )
      .then((res) => {
       console.log(res.body.data)
      })
      .catch((err) => {
        console.log(err);
      });
  };

這是我的 redux 傳奇:

import { takeLatest, put } from "redux-saga/effects";
import { delay } from "redux-saga/effects";

function* loadDataAsync() {
  yield delay(500);
  yield put({ type: "LOAD_DATA_ASYNC" });
}

export function* watchloadData() {
  console.log("Im working buddy");
  yield takeLatest("LOAD_DATA", loadDataAsync);
}

問題是我真的不知道如何通過 redux-saga 獲取數據,我試圖做研究,但似乎沒有一個信息讓我滿意。 你能給我一些建議嗎?

問題是我真的不知道如何通過 redux-saga 獲取數據,

不,問題是您並不真正了解 javascript 中的 function 生成器。

無論如何,如果我要構建那段代碼,我會做這樣的事情:

export function* getData(){
 yield agent
  .get(
    "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?CMC_PRO_API_KEY=XXX"
  )

};

接着:

function* loadDataAsync() {

  try {

    const { body: { data } } = yield getData();
    console.log(data);

    yield put({ type: "LOAD_DATA_ASYNC_SUCCESS" });

  } catch(err) {

    console.log(err);
    yield put({ type: "LOAD_DATA_ASYNC_FAILED" });

  } 

}

暫無
暫無

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

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