#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()
этого, это потому, что по какой-то другой причине сейчас не стоит объяснять.