首页 > 解决方案 > 需要帮助解决承诺并分配返回值

问题描述

我正在尝试将格式化的(JSON)API 结果传递到 redux 商店。我能够检索数据并解决承诺,但我无法在“.then”方法中分配返回的数据。

你能告诉我我做错了什么吗?另外我是新人,所以如果我问错了问题,请多多关照。谢谢你。

减速器

import apiTest from "../api/ApiTest";

const initialState = {
  listData: null
};

const contactListReducer = (state = initialState, action) => {
  switch (action.type) {
    case "FETCH":
      console.log("inside switch (reducer) ");
      return getData(state);
    default:
      return state;
  }
};

const getData = (state, action) => {
  console.log("Inside getData");
  let data;
  let request = apiTest().then((results) => {
    data = results;
    console.log("INSIDE THEN");
    console.log(data);
  });
  console.log("OUTISIDE THEN");
  console.log(request);
  return Object.assign({}, state, {
    listData: request
  });
};

export default contactListReducer;

API 代码:

import React, { useEffect, useState } from "react";
import axios from "axios";

const apiCall = async () => {
  try {
    const payload = await fetch("https://jsonplaceholder.typicode.com/users");
    const results = await payload.json();
    // console.log(results);
    return results;
  } catch (err) {
    console.log(`error found of type ${err}`);
  }
};

export default apiCall;


标签: javascriptreactjsasynchronousredux

解决方案


推荐阅读