【问题标题】:Fetch is empty Redux SagaFetch 是空的 Redux Saga
【发布时间】:2018-10-20 22:11:32
【问题描述】:

我 5 分钟前刚开始学习 Redux Saga

我的传奇:

import axios from "axios";
import {call, put, takeLatest} from "redux-saga/effects";
import {
    USERS_FETCH_REQUESTED,
    USERS_FETCH_SUCCEEDED,
    USERS_FETCH_FAILED
} from 'actions/constants'

function *fetchUsers(action) {
  try {
    const response = yield call(fetch, 'https://jsonplaceholder.typicode.com/users');
    const data = response.json();
    console.log(data)
    yield put({type: USERS_FETCH_SUCCEEDED, payload: data});
  } catch (e) {
    yield put({type: USERS_FETCH_FAILED, payload: e.message});
  }
}

function* mySaga() {
    yield takeLatest(USERS_FETCH_REQUESTED, fetchUsers);
}

export default mySaga

由于某种原因,我的 SUCCES_FETCH 的有效负载只是一个空对象,但日志返回 10 10 个项目。

我做错了什么?

【问题讨论】:

    标签: javascript reactjs redux redux-saga reducers


    【解决方案1】:

    response.json() 返回一个 Promise,您需要等待 Promise 解析才能获取项目。

    const data = yield call([response, 'json']);
    

    这将产生一个调用response.json() 的效果,并在promise 解决后将结果反馈给saga。

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2017-09-12
      • 2017-08-27
      • 2020-03-27
      • 2017-09-23
      • 2017-06-07
      • 2021-11-14
      • 2017-05-28
      • 2017-02-21
      相关资源
      最近更新 更多