当前位置: 首页 > 面试题库 >

如何通过Redux中的api获取数据?

程祯
2023-03-14
问题内容

我是reactjs / redux的初学者,找不到如何使用api调用在redux应用程序中检索数据的简单示例。我猜您可以使用jquery
ajax调用,但是那里可能还有更好的选择?


问题答案:

JSfiddle;
http://jsfiddle.net/cdagli/b2uq8704/6/

它使用redux,redux-thunk和fetch。

提取方法;

function fetchPostsWithRedux() {
    return (dispatch) => {
    dispatch(fetchPostsRequest());
    return fetchPosts().then(([response, json]) =>{
        if(response.status === 200){
        dispatch(fetchPostsSuccess(json))
      }
      else{
        dispatch(fetchPostsError())
      }
    })
  }
}

function fetchPosts() {
  const URL = "https://jsonplaceholder.typicode.com/posts";
  return fetch(URL, { method: 'GET'})
     .then( response => Promise.all([response, response.json()]));
}

上面使用的动作:

(注意:您可以定义许多动作,例如fetchPostRequest可用于显示加载指示符。或者,如果HTTP状态码不同,则可以分派不同的动作。)

function fetchPostsRequest(){
  return {
    type: "FETCH_REQUEST"
  }
}

function fetchPostsSuccess(payload) {
  return {
    type: "FETCH_SUCCESS",
    payload
  }
}

function fetchPostsError() {
  return {
    type: "FETCH_ERROR"
  }
}

在您的reducer中,您可以加载帖子以声明状态;

const reducer = (state = {}, action) => {
  switch (action.type) {
    case "FETCH_REQUEST":
      return state;
    case "FETCH_SUCCESS": 
      return {...state, posts: action.payload};
    default:
      return state;
  }
}

连接它们之后,您可以访问组件中的状态和动作;

connect(mapStateToProps, {fetchPostsWithRedux})(App);


 类似资料:
  • 问题内容: 我正在使用Redux,redux-router和reactjs。 我正在尝试制作一个用于获取路线更改信息的应用程序,因此,我遇到了一些类似的问题: 当有人进入时,我想搜索艺术家,然后渲染信息。问题是,这样做的最佳方法是什么? 我已经找到了有关此问题的答案,使用RxJS或尝试使用中间件来管理请求。现在,我的问题是,这真的必要吗?还是保持体系结构不可知的一种方法?我可以直接从react c

  • 问题内容: 我想将页面上的一些数据发送到servlet 所以我写了下面的jQuery来做到这一点 我使用所有数据构建一个json字符串,并将其直接发送到servlet 但是我不知道如何从servlet中的ajax获取全部数据 如果查看来自chrome的请求标头的Form Data段 您会看到整个json字符串是关键。 问题答案: 看这里, 您的归属是错误的。它不应该是字符串,而是真实的JSON对象

  • 我正在尝试从特定目录中的google工作表列表(大约570个工作表)中删除多余的行和列(已知范围)。 我能够使用google drive API获取电子表格Id。但是,修改页面的尺寸需要图纸Id。 我无法找到通过驱动器API(文件属性)检索此工作表ID的方法,也无法找到任何关于如何在电子表格中列出可用工作表的留档,因为我有电子表格ID。 我尝试使用谷歌应用程序脚本来达到我的目标,但运行时间已经超过

  • 我需要通过以太网协议将以太网数据包从一个设备发送到另一个设备。经过一番研究,我决定使用TCP\IP协议。我创建了相互通信的TCP服务器和TCP客户端。为此,我使用了TcpClient和TcpListener类。它工作正常,但我有一些问题: < li >我需要检查收到的消息中的CRC,并与监听方手动计算的CRC进行比较。我该怎么做?我如何从收到的消息中获取CRC?我得到的只是我从客户那里发来的一个准

  • 我得到了这段代码,但我认为这是不好的方法,如果有像100K的结果,它会返回100K的新用户怎么办?对于,我是否可以使用其他方法,但我不太确定如何实现。另外,是否应该使用块?

  • 问题内容: 有谁知道如何使用Java GSS-API从密钥分发中心(KDC)获取服务票证? 我有一个胖客户端应用程序,该应用程序首先使用Krb5LoginModule通过JAAS进行身份验证以从票证缓存中获取TGT(背景:Windows例如使用kerberos实现,并将票证授予票证存储在安全的存储区域中)。从LoginManager中,我获得包含TGT的Subject对象。现在,我希望当我为我的服