gpt4 book ai didi

reactjs - 如何在react-redux中发出HTTP请求?

转载 作者:行者123 更新时间:2023-12-03 13:11:29 37 4
gpt4 key购买 nike

我刚刚开始使用 React,我有点迷失。我正在尝试创建一个登录页面并发出 http post 请求。现在我只是想让任何类型的 HTTP 请求正常工作,所以我使用 request bin,并且在 npm 包的文档中找到了这个基本操作 ( https://www.npmjs.com/package/redux-react-fetch ):

export function updateTicket(ticketId, type, value){
return {
type: 'updateArticle',
url: `http://requestb.in/1l9aqbo1`,
body: {
article_id: ticketId,
title: 'New Title'
},
then: 'updateTicketFinished'
}
}

那么,写完一个 Action 后,我该怎么办?我如何真正让我的应用程序调用并使用该操作? npm 包的文档提到了一些关于在我的商店中设置状态的内容,这是我需要首先设置的内容吗?

最佳答案

您可以尝试以下任一方法。我使用过 fetch 和 axios,它们工作得非常好。尚未尝试superagent

  1. 要发出请求,您可以使用 fetch 与fetch-polyfill 可兼容所有浏览器 ( link )
  2. Axios 库。 (link)
  3. 有 promise 的 super 代理。( link )

如果您使用 fetch,则需要使用 polyfill,因为 IE 和 safari 尚不支持它。但使用 Polyfill 效果很好。您可以查看链接以了解如何使用它们。

因此,您要做的就是在操作创建器中,您可以使用上述任何内容调用 API。

获取

function fetchData(){
const url = '//you url'
fetch(url)
.then((response) => {//next actions})
.catch((error) => {//throw error})
}

AXIOS

 axios.get('//url')
.then(function (response) {
//dispatch action
})
.catch(function (error) {
// throw error
});

这就是 API 调用,现在进入状态。在 redux 中,有一种状态可以处理你的应用程序。我建议你应该仔细阅读 redux 基础知识,你可以找到 here 。因此,一旦您的 api 调用成功,您就需要使用数据更新您的状态。

获取数据的操作

 function fetchData(){
return(dispatch,getState) =>{ //using redux-thunk here... do check it out
const url = '//you url'
fetch(url)
.then (response ) => {dispatch(receiveData(response.data)} //data being your api response object/array
.catch( error) => {//throw error}
}
}

更新状态的操作

   function receiveData(data) {
return{
type: 'RECEIVE_DATA',
data
}
}

reducer

   function app(state = {},action) {
switch(action.types){
case 'RECEIVE_DATA':
Object.assign({},...state,{
action.data
}
})
default:
return state
}
}

关于reactjs - 如何在react-redux中发出HTTP请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794895/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com