gpt4 book ai didi

javascript - 无法在 React Native 中使用提取执行 POST 请求

转载 作者:行者123 更新时间:2023-11-29 21:04:19 25 4
gpt4 key购买 nike

我正在尝试对由 node.js 中的 json-server 服务的 json 文件执行 POST 操作。我在尝试执行上述 POST 操作时收到以下 500 错误:

“类型错误:无法读取未定义的属性‘id’ 在 Function.createId"

post操作如下:

pushState = () => {
var update = {
"a": 1,
"b": 2
};

return fetch(url, {
mode: 'cors',
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(update)
})
.then((response) => {
console.log(response);
response.text();
})
.then((responseData) => {
console.log("Response:",responseData);
}).catch((error) => {
console.log(error);
})
.done();
}

我是否正确执行了 POST 请求?

编辑:添加 async 和 await 后我仍然遇到同样的错误:

pushState = async () => {
var update = {
"a": 1,
"b": 2
};

var result = await fetch(url, {
mode: 'cors',
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(update)
})
.then((response) => {
console.log(response);
return response;
})
.catch((error) => {
console.log(error);
});

return result;
}

最佳答案

这里有两个问题:

  1. 您不会从 fetch 返回任何内容。
  2. fetch 是异步的。通过您现在使用 pushState 立即返回结果调用它的方式,它几乎总是会在您遇到错误时返回 undefined 。您需要使用 async/await 编写 pushState

编辑以回答评论:

由于您使用的是函数箭头语法,因此使 pushState 异步将如下所示:

pushState = async () => { /* code */ }

为了帮助您了解 fetch 的工作原理,我建议您阅读 this first .然后要在较高层次上理解 async/await,请阅读 this article .您的结果代码将如下所示:

pushState = async () => {
var update = {
"a": 1,
"b": 2
};

var result = await fetch(...) // Remember to return something.

return result;
}

关于javascript - 无法在 React Native 中使用提取执行 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44811809/

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