#reactjs #react-router
Вопрос:
Я использую функцию для обработки http-ответов в react. эта функция находится вне компонента в отдельном имени файла httpErrorHandler.js
export const redirectError = (command, message, type, path) => {
if (command === "toast") {
type(message, {
position: toast.POSITION.TOP_RIGHT,
});
}
if (command === "redirect") {
return <Redirect push to="/laksjdsdlkjsdfkasjhfklsdjh" />;
}
};
я вызываю эту функцию при запросе на сервер
requestFile.js
export const getSomeApis = async () => {
let data;
await getApi(URL)
.then((info) => {
data = info;
redirectError ("toast",info.status, "redirect", "Catched it successfully");
})
.catch((error) => {
redirectError (
"redirect
, error.response.status,
"redirect",
error.response.data.errors[0].message
);
});
if (data) {
return data;
}
};
Я хочу перенаправить свою страницу в функции перенаправления, которая не работает. Каков наилучший способ перенаправления на другую страницу из компонента?
Ответ №1:
Просто используйте windows.location.href
вместо Redirect
if (command === "redirect") {
windows.location.href="/laksjdsdlkjsdfkasjhfklsdjh";
}
Комментарии:
1. таким образом, страница будет обновлена, но я не хочу обновлять страницу