响应对象未分配给变量 REDUX-SAGA
The response object not assign to the variable REDUX-SAGA
后端的响应有问题。
我使用 mongoose 删除了一个具有特定 _id 的项目。
创建方法运行良好,我可以获得值响应并将其分配给变量。
删除也很有效,但我无法获取响应值以将响应分配给变量 const post
function* deletePostSaga(action) {
try {
console.log("_id: ", action.payload);
const post = yield call(api.deletePost, action.payload);
console.log("Post - Delete: ", post);
yield put(actions.deletePost.deletePostSuccess(post));
} catch (err) {
console.error(err);
yield put(actions.deletePost.deletePostFailure(err));
}
}
api.deletePost
:
import axios from "axios";
export const fetchPosts = () => axios.get(`/posts`);
export const createPost = (payload) => axios.post(`/posts`, payload);
export const updatePost = (payload) => axios.put("/posts", { data: payload });
export const deletePost = (payload) => {
console.log(payload);
axios.delete(`/posts`, { data: payload });
};
项目被删除,我从devtool检查网络并检查预览,我也得到了响应对象:
message: "Delete successfully"
post: {author: "Anonymous", likeCount: 0, _id: "60d99146df51c152f189b1c4", title: "123", content: "123",…}
attachment: ""
author: "Anonymous"
content: "123"
createdAt: "2021-06-28T09:07:18.178Z"
likeCount: 0
title: "123"
updatedAt: "2021-06-28T09:07:18.178Z"
__v: 0
_id: "60d99146df51c152f189b1c4"
success: true
只是不知道为什么我无法将响应分配给const post
变量,它只是显示为undefined
。
感谢阅读。
您需要将 deletePost
的值从 axios
更新为 return。您可以像这样使用 async await
:
deletePost = async (payload) => {
console.log(payload);
const response = await axios.delete(`/posts`, { data: payload });
return response
};
deletePost = async (payload) => {
console.log(payload);
const response = await axios.delete(`/posts`, { data: payload });
return response;
};
在使用 async
关键字时,您需要使用 await
才能进行阻塞调用。
后端的响应有问题。
我使用 mongoose 删除了一个具有特定 _id 的项目。
创建方法运行良好,我可以获得值响应并将其分配给变量。
删除也很有效,但我无法获取响应值以将响应分配给变量 const post
function* deletePostSaga(action) {
try {
console.log("_id: ", action.payload);
const post = yield call(api.deletePost, action.payload);
console.log("Post - Delete: ", post);
yield put(actions.deletePost.deletePostSuccess(post));
} catch (err) {
console.error(err);
yield put(actions.deletePost.deletePostFailure(err));
}
}
api.deletePost
:
import axios from "axios";
export const fetchPosts = () => axios.get(`/posts`);
export const createPost = (payload) => axios.post(`/posts`, payload);
export const updatePost = (payload) => axios.put("/posts", { data: payload });
export const deletePost = (payload) => {
console.log(payload);
axios.delete(`/posts`, { data: payload });
};
项目被删除,我从devtool检查网络并检查预览,我也得到了响应对象:
message: "Delete successfully"
post: {author: "Anonymous", likeCount: 0, _id: "60d99146df51c152f189b1c4", title: "123", content: "123",…}
attachment: ""
author: "Anonymous"
content: "123"
createdAt: "2021-06-28T09:07:18.178Z"
likeCount: 0
title: "123"
updatedAt: "2021-06-28T09:07:18.178Z"
__v: 0
_id: "60d99146df51c152f189b1c4"
success: true
只是不知道为什么我无法将响应分配给const post
变量,它只是显示为undefined
。
感谢阅读。
您需要将 deletePost
的值从 axios
更新为 return。您可以像这样使用 async await
:
deletePost = async (payload) => {
console.log(payload);
const response = await axios.delete(`/posts`, { data: payload });
return response
};
deletePost = async (payload) => {
console.log(payload);
const response = await axios.delete(`/posts`, { data: payload });
return response;
};
在使用 async
关键字时,您需要使用 await
才能进行阻塞调用。