这是我的createAsyncThunk
export const removePlayer = createAsyncThunk(
'player/removePlayer',
async (playerId: any, thunkAPI) => {
try {
await axios.delete(URL, playerId)
} catch (error) {
return thunkAPI.rejectWithValue(error)
}
}
)
这是一个函数,它调度
<Button variant='outlined' onClick={() => {
dispatch(removePlayer(player._id))
}}><DeleteIcon /></Button>
我已经用createAsyncThunk
完成了其他CRUD操作,比如Read、Create和Update,它们都运行得很好。我用axios.delete
做错了吗?这就是我的感觉。正如你所看到的,我所要做的就是传入玩家ID,然后删除它,就这么简单。我对axios.put
、axios.get
和axios.post
使用了非常相似的逻辑,它们都运行得很好
EDIT我可以通过向路由添加id
参数来解决此问题,如下所示
router.delete('/:id', deletePlayer)
但我只是好奇是否还有其他替代方法,因为使用axios post get和put,我可以在不使用任何参数的情况下执行此操作
1条答案
按热度按时间9jyewag01#
但我只是好奇是否还有其他选择
通常,
DELETE
请求没有请求主体,但这并不意味着您不能使用请求主体。从客户端来说,类似这样的事情...
将发送具有主体
{"playerId":"some-id-value"}
的application/json
请求。在服务器端,对于Express,您可以使用以下命令
要处理JSON有效负载,您应该注册适当的中间件