我正在尝试使用axios发出POST请求。以下是我的axios函数在一个名为userFunctions.js的文件中。
export const savePost = (postInfo) => {
return axios
.post(
"admin/savepost",
{ first_name: "hello", last_name: "world" },
{
headers: {
Authorization: `Bearer ${localStorage.usertoken}`,
},
}
)
.then((response) => {
console.log(response); //response is able to get printed here
console.log("axios:: saved post");
});
};
我在另一个名为card.js的文件中调用此文件,如下所示:
handleChange(e) {
e.preventDefault();
const { name, type, checked } = e.target;
if (type === "checkbox") {
this.setState({
[name]: checked,
});
savePost("post 1").then((res) => {
//response is undefined here!
console.log(res === undefined); //true
if (!res.error) {
console.log("client: post saved");
}
});
}
}
我收到以下错误:
未处理的拒绝(TypeError):无法读取的属性“错误” 未定义
我不明白为什么可以在userFunctions.js中打印响应,但是当我在card.js中调用savePost变量时却未定义
答案 0 :(得分:0)
之所以发生这种情况,是因为您在userFunctions.js中处理了响应并且没有将其返回(即,诺言链中的最后then
返回未定义)。
进行以下更改:
.then((response) => {
console.log(response); //response is able to get printed here
console.log("axios:: saved post");
return response
});