Redux Thunk Dispatch Axios Post Request Body



所以我有点拘泥于尝试使用axios在Redux Thunk中发送请求正文。我工作的应用程序有一个特殊的设置,我们有一个服务,它公开了我们可以在dispatch调用中使用的后端方法,比如:

// action file
export const subscribeUser = (id, token) => async dispatch => {
await dispatch({
type: t.SOME_ACTION_FETCHING,
api: 'nameOfApi',
method: 'createSubscription',
payload: {
userId: id
}
}).then(
response => dispatch({ type: t.SOME_ACTION_FETCHED, subscriptionStatus: response })
);
};

其中nameOfApi是要与之通信的后端,createSubscription是适当的post方法。我似乎无法在这个请求中发送请求正文。

dispatch逻辑中,我尝试过

await dispatch({
type: t.SOME_ACTION_FETCHING,
api: 'nameOfApi',
method: 'createSubscription',
payload: {
userId: id,
subscribeToken: token
}
})

await dispatch({
type: t.SOME_ACTION_FETCHING,
api: 'nameOfApi',
method: 'createSubscription',
payload: {
userId: id,
},
subscribeToken: token
})

因此,我试图达到的路线是https://gateway.dev.url/nameOfApi/{userId}/subscription。我正在尝试在请求正文中发送token

当我使用Postman pinghttps://gateway.dev.url/nameOfApi/1234/subscription(带有适当的标头,这些标头已经由服务处理(时,以下路由成功地返回了我需要的响应,并且在Postman的Body选项卡中,我发送

{
"subscribeToken": "abcd1234"
}

这正是API所需要的。但在我的React/Redux代码中,我得到了500个错误或409个错误,因为整个请求与Swagger验证不匹配,后者证明ping API是有效的,请求只是以错误的方式发送。

有人能告诉我如何在使用Redux Thunkdispatchaxiospost请求的请求体中发送subscribeToken的正确方向吗?

提前感谢您的任何潜在指导。。。!

EDIT:要添加,还有一个get请求,它只需要userId作为URL参数,下面解析并返回成功响应:

await dispatch({
type: t.SOME_ACTION_FETCHING,
api: 'nameOfApi',
method: 'getSubscription',
payload: {
userId: id,
}
})

因此,post的问题肯定只是一个语法问题,我将如何将Postman中的工作内容(Body选项卡参数(转录到dispatch逻辑中。

实际上看起来我缺少API中的包装器参数,dispatch请求需要看起来像

await dispatch({
type: t.SOME_ACTION_FETCHING,
api: 'nameOfApi',
method: 'createSubscription',
payload: {
userId: id,
newToken: {
subscribeToken: token
}
}
})

看来我现在都整理好了。Mods可以结束这个问题,除非它能为社区提供信息。

相关内容

  • 没有找到相关文章

最新更新