Здравствуйте! Мне необходимо получить и вывести сообщение в случае ошибки при совершении запроса.
Однако для этого мне нужно засунуть в стор сообщение об ошибке. Ниже будет показана реализации.
С сервера мне прилетает следующая информация:
{
"detail": {
"ProviderError": null,
"Code": 310,
"Message": "В запрашиваемую дату поездов нет",
"MessageParams": []
}
}
Вот логика стейт-менеджера Effector при запросе:
export const getTrains = createEvent<Object>();
const getTrainsFx = createEffect({handler: (trains: Object) => getTrainsHandler(trains)});
export const $getTrainsStore = createStore<ITrains[]>([]);
export const $isGetTrainsLoaded = createStore<boolean>(false).on(getTrainsFx.done, () => true);
forward ({from: getTrains, to: getTrainsFx});
forward ({from: getTrainsFx.doneData, to: $getTrainsStore});
export const $getTrainsErrorStore = createStore<string>(false).on(getTrainsFx.fail, () => getTrainsFx.failData )
Вот функция getTrainsHandler:
export async function getTrainsHandler(params: Object){
const json = JSON.stringify(params);
try{
const res = await axios.post(url+'Railway/get_trains', json ,{
headers: {
'Content-Type': 'application/json'
}
});
return res.data.Trains;
} catch(error: any){
return error.response.data.detail.Message;
}
}
Подскажите пожалуйста, как это можно реализовать?