У меня есть функция, которая предназначена для выполнения различных асинхронных действий на основе установленных входов. Вот моя функция:
const generalApiRequest =(requestUrl, urlType, data={},actionDispatch) =>{
return function(dispatch, getState){
console.log(dispatch);
adminId = getState().authentication.adminId;
token = getState().authentication.token;
return hitUrl(requestUrl,urlType, dispatch, data).then((response)=>{
try{
if(response.status === 200){
//dispatch(actionDispatch(response.data));
actionDispatch();
}
else{
console.log("Wrong response",response);
if(response.status === 401){
console.log('login again, auth failed');
dispatch(authFailed());
}
}
}
catch(error){
console.log(error);
}
}
,(error)=>{console.log(error)})
}
};
Вот также hitUrl (), который необходим для функции:
const hitUrl= async function(requestUrl, urlType,dispatch, data={}){
try {
//const requestUrl = apiUrl+ 'application/fetch-dashboard-data'+`/{$adminId}`;
if(urlType === "get"){
response = await axios(requestUrl,header(token));
}
else {
response= await axios.post(requestUrl, data, header(token));
}
return response;
} catch (error) {
console.log(error);
console.log("error status", error.response.status);
try{
if(error.response.status === 401){
dispatch(authFailed());
}
}
catch(newError){
console.log(newError)
}
}
}
У меня также есть функция processApplicant ()
export const processApplicant=(data)=>{
let requestUrl;
let urlType = "post";
let message;
message = "The user has been successfully deleted"
requestUrl = apiUrl+ 'application/process/delete';
let actionDispatch= triggerSuccess(message);
generalApiRequest(requestUrl,urlType, data, actionDispatch);
}
Теперь я отправил действие ниже в моем компоненте реакции
dispatch(processApplicant({adminId: 2, comment: "No comments", trigger: "Pick", userId: 3}));
При этом я получаю сообщение об ошибке в названии выше (Возможное необработанное отклонение обещания: Ошибка: действия должны быть простыми объектами. Используйте пользовательское промежуточное ПО для асинхронных c действий) , У меня есть Redux Thunk в качестве промежуточного ПО, и он отлично работает для другого запроса. Что я делаю не так, пожалуйста?