我首先发送一个POST请求,向表ORDER添加一个新位置,在完成该请求后,它再向表ORDER_PRODUCT发送一个POST请求,以将上一个订单与某些产品关联起来。
如果我把这两个帖子请求分开,然后手动启动它们,那么一切都很好。
const orderHandler = () => {
setError('')
token
? axios
.post(
'http://localhost:8000/order/',
{
notes: notes,
price: quantPrice,
city: city,
street: street,
zipcode: zipcode,
},
{
headers: {
Authorization: 'Token ' + token,
},
},
)
.then((response) => {
console.log(response.data.id, 'wielki chuj')
setOrderid(response.data.id)
})
//.then((response)=>setOrderid(response.data.id ))
.then(() => console.log(orderid))
.then(() => {
cartItems.map((j) =>
axios.post(
'http://localhost:8000/orderproduct/',
{
order: orderid,
product: j.id,
quantity: j.quant,
},
{
headers: {
Authorization: 'Token ' + token,
},
},
),
)
})
.catch((error) => {
console.log(error.response.data.body)
setError(error.response.data.body)
})
: setError('You must be logged in')
}
1条答案
按热度按时间bvhaajcl1#
答案是直接将www.example.com传递response.data给第二个POST,而不是通过state。这是subparry建议的。