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

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

易扬
2023-03-14
问题内容

我才刚开始做出反应,我有点迷茫。我正在尝试制作一个登录页面并发出一个http发布请求。现在,我只是想使任何类型的HTTP请求都能正常工作,所以我使用了请求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'
  }
}

那么,写完一个动作之后,我该怎么办?我实际上如何让我的应用程序调用并使用该操作?npm软件包的文档中提到了有关在商店中设置状态的内容,这是我需要首先设置的内容吗?


问题答案:

您可以尝试以下任何一种方法。我都用过fetchaxios它们工作得非常好。尚未尝试superagent

  1. 对于发出请求,您可以将其fetch与fetch-polyfill一起使用,以实现所有浏览器的兼容性(link)
  2. Axios库。(链接)
  3. 具有承诺的超级代理。(链接)

如果您使用提取,则您需要使用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基础知识,您可以在这里找到。因此,一旦您的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
     }
   }

减速器

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


 类似资料:
  • 问题内容: 我在iBooks中阅读了Apple的The Programming Language Swift ,但无法弄清楚如何在Swift中发出HTTP请求(例如cURL)。我需要导入Obj- C类还是只需要导入默认库?还是无法基于本机Swift代码发出HTTP请求? 问题答案: 您可以使用,而且还是因为你通常在Objective- C做。请注意,对于iOS 7.0和更高版本,它是首选。 使用

  • 我在iBooks上读过Apple的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似于cURL)。我需要导入Obj-C类还是只需要导入默认库?或者不可能基于本机Swift代码发出HTTP请求?

  • 我在iBooks中阅读了苹果公司的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似cURL的东西)。我需要导入Obj-C类还是只需要导入默认库?还是不能基于原生Swift代码进行HTTP请求?

  • 问题内容: 如何在node.js中使用数据发出出站HTTP POST请求? 问题答案: 这是一个使用node.js向Google Compiler API发出POST请求的示例: 我已经更新了代码,以显示如何从文件而不是硬编码的字符串发布数据。它使用async 命令来实现此目的,并在成功读取后发布实际代码。如果有错误,则抛出该错误,如果没有数据,则该过程以负值退出以指示失败。

  • 问题内容: PHP中有没有办法进行异步HTTP调用?我不在乎响应,我只想做类似的事情,但不等待请求完成再执行其余代码。这对于在我的应用程序中触发某种“事件”或触发较长的进程非常有用。 有任何想法吗? 问题答案: 我以前接受的答案没有用。它仍然在等待回应。但这确实有效,取自我如何在PHP中发出异步GET请求?

  • 我试图为我的浏览器创建一个定制的主页。我已经实现了一个API来显示天气,但只有当我按下回车键时才能工作。我想在加载页面时自动显示数据,不按回车键,自动显示布里斯托尔天气,当我键入另一个位置时,api将能够请求和渲染。我尝试了很多方法,比如(删除钩子,改变钩子的初始状态,但似乎没有什么工作)这是我的代码: 我是ReactJS新手,这有点让人困惑,因为在这里我使用同一个文件来编码和渲染,我以前做过这件