Как перенаправить на другую страницу в компоненте react outside в функции

#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. таким образом, страница будет обновлена, но я не хочу обновлять страницу