Контекст выполнения был уничтожен, скорее всего, из-за навигации

#javascript #reactjs #react-snap

Вопрос:

Эта ошибка появляется, когда я создаю производственную сборку для своего приложения React. Это происходит потому, что у меня есть скрипт, который определяет язык браузера и перенаправляет пользователя на версию сайта на их языке.

Это код, о котором идет речь (он находится в App.js):

 useEffect(() => {
  let navLang = navigator.language || navigator.userLanguage;
  navLang = navLang.split("-");
  let myLang = navLang[0];

  let fullPathname = window.location.pathname;
  fullPathname = fullPathname.toLowerCase();
  let newPathname = fullPathname.split("/")

  // If the site is already in the browser's language stop the function
  if(myLang === newPathname[1] || (newPathname[1] === "jp" amp;amp; (myLang === "ja" || myLang === "jpn"))) {
    return
  } else {
    // get the pathname without the language
    // i.e if the url is "/en/profile/" the output will be /profile" 
    let pathname = getPathname(fullPathname)

    
    if(myLang === "es" || myLang === "spa") {
      window.location.pathname = "/es/"   pathname;
    } else if(myLang === "ja" || myLang === "jpn") {
      window.location.pathname = "/jp/"   pathname;
    } else {
      window.location.pathname = "/en/"   pathname;
    }
  }
}, [])
 

Если я правильно понимаю, проблема в том, что react-snap при сканировании страниц имеет проблему с этим фрагментом кода.

Если вам интересно, почему я использую window.location.pathname вместо history.replace() этого, это потому, что по какой-то другой причине сейчас не стоит объяснять.