当前位置: 首页 > 知识库问答 >
问题:

React JS获取API发布

叶恩
2023-03-14

我使用fetchapi发布表单中的一些数据,这很有效。

但是我面临一个问题,问题是当我发布数据时,状态不会更新,是的,我知道我没有使用setState(),但没有设置它。然而

目前,我正试图通过控制台日志调试该问题,结果发现没有使用主体。

提交功能:

addContact = (event) => {

      event.preventDefault(); //Prevents The Default Action Of A Form


      const formData = {};

      /* 
      for(let [temp variable] in this.state.contacts) {
        formData[attach temp variable] = to contacts[temp variable].value
      }

      */

      // BASIC TERM: For everything in the contacts config set the formData (Blank Object) equal to the identifier e.g. name, street equal to the state value. The object will then be populated
      // The formData is then attached to an object named object and sent to the firebase database by attaching it to the post request
      for(let formElementIdentifier in this.state.contacts) {
        formData[formElementIdentifier] = this.state.contacts[formElementIdentifier].value;
      }

      const data = {
        persons: formData
      }

      fetch("https://address-book-database.firebaseio.com/contact.json", {
        method: "POST",
        headers : {
          Accept: "application/json",
          "Content-Type": "application/json"
        },
        body: JSON.stringify(data)
      })
      .then((res) => {
        console.log("Body Used Or Not")
        console.log(res.bodyUsed)
      })
      .then(json => {

      })
    }

这是第一次使用提取API。Tm真的很困惑为什么这行不通,任何帮助都将不胜感激。我知道链接。然后(),但我不能让它与POST请求一起工作。

我想做的就是从我的表单中设置值并将其附加到请求中,请求需要转换为JSON,然后状态需要更新。

完整项目:https://github.com/AlexMachin1997/React-JS-Contact-Book/blob/master/src/Components/Contact/Contacts/Contacts.js

共有1个答案

夏侯瑞
2023-03-14

使用如下所示的获取请求。您需要使用响应。json()。它等待主体加载。

为什么response.json回报promise?

因为当所有头都到达时,您会收到响应。使命感json()为尚未加载的http响应体提供promise

为什么JavaScript获取API的响应对象是一个promise?

fetch('https://address-book-database.firebaseio.com/contact.json', {
    method: 'post',
    headers: {
        Accept: "application/json",
        "Content-Type": "application/json",
        'Access-Control-Allow-Origin': '*'
    },
    body: JSON.stringify(data)
}).then(function (response) {
    return response.json(); //response.json() is resolving its promise. It waits for the body to load
}).then(function (responseData) {
    //Do your logic
});
 类似资料:
  • 问题内容: 几天以来,我一直在为我的实习机会创建一个React Web应用程序,但是遇到了CORS错误。我正在使用最新版本的reactJS,并将其放在中,以下是用于获取的代码: 抱歉,由于公司规定,我无法发布该API的网址,但是,可以确认该API后端中没有CORS设置。 但是,在mozilla上运行时遇到以下错误 和 如果在chrome上运行,则会出现以下错误 和 和 另一件事是,我可以在浏览器中

  • 我试图获取一系列api数据。根据下面的api数据,每个系列都有自己的数据,例如,一系列“bannerData”有自己的数据id,banner_title...下一个系列“home ecatData”有自己的数据,比如id,category_title...等等 在我的例子中,endpointapi是http://localhost:8000/api/homepage/ 如何在reactjs中获取这

  • 问题内容: 所以基本上我创建了一个循环,该循环从数组中获取值,然后使用youtube api将这些值放入一个循环中。如果我从循环内访问youtube链接,则工作正常,但在循环外“(当我运行console.log({urllist})”时,我得到一个空数组。我要做的就是推送所有值放入urllist空数组,然后将其传输到状态变量(“ videos”) 我要指的功能是videoUrls 问题答案: 您的

  • 我只是想用一个fetch方法向我的restapi发送一个值,但似乎无法让它工作。这就是我目前的情况: 反应: Spring boot rest api:

  • 我是Reactjs的初学者,并试图通过一个项目来提高自己。随着项目的进行,我现在需要设置一个结构,以便我的UI组件连接到某个RESTAPI,并使用返回的数据。这在互联网上有很多例子,很好。 我的问题是,我是否以及如何将应用编程接口连接与实际的用户界面组件分开。我相信这可能是好的,因为我将有机会在各种用户界面组件中重用应用编程接口连接功能。(在这些帮助器方法中执行与API连接相关的常见任务是理想的。

  • 问题内容: React渲染元素后如何获取元素的高度? HTML ReactJS 结果 它正在计算渲染之前的容器高度(36像素)。我想获得渲染后的高度。在这种情况下,正确的结果应为18px。jsfiddle 问题答案: 看到这个小提琴(实际上更新了您的) 您需要钩住在render方法之后要运行的对象。在那里,您可以获得元素的实际高度。