我正在尝试使用path变量对我的后端服务器进行axios get调用,并将响应数据保存到存储中。不幸的是,它仅适用于没有路径变量的get调用。仍然可以在控制台中记录响应,但是无法将response.data分发到商店
fetchByCardNumber: (CardNumber) => axios.get(baseURL+'loyalty/loyaltyCustomer/card/'+ CardNumber)
export const fetchByCardNumber = (CardNumber) => dispatch => {
LoyaltyAPI().fetchByCardNumber(CardNumber)
.then(response => {
if (response.status !== 200){
dispatch(Customer(null))
} else {
dispatch(Customer(response.data))
}
}).catch(error => {
return error;
})
}
但是无论我在axios中使用不带pathVaribale的URL还是可以调用它。
例如:fetchCards: () => axios.get(baseURL+'loyalty/loyaltyCard/all')
使用上面的URL时,我可以将响应发送到商店并获取。
答案 0 :(得分:1)
//use it like that without curly braces between {cardNumber}
fetchByCardNumber: (CardNumber) => axios.get(baseURL+'loyalty/loyaltyCustomer/card/'+ CardNumber)
export const fetchByCardNumber = (CardNumber) => dispatch => {
LoyaltyAPI().fetchByCardNumber(CardNumber)
.then(response => {
if (response.status !== 200){
dispatch(Customer(null))
} else {
dispatch(Customer(response.data))
}
}).catch(error => {
return error;
})
}
答案 1 :(得分:1)
问题在于将响应分发到商店的方式。以下代码有效。
export const fetchByCardNumber = (CardNumber) => dispatch => {
LoyaltyAPI().fetchByCardNumber(CardNumber)
.then(response => {
if (response.status !== 200){
store.dispatch(SelectedCustomer(null))
} else {
store.dispatch(SelectedCustomer(response.data))
}
}).catch(error => {
return error;
})
}