このエラーは、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" && (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;
}
}
}, [])
私が正しく理解していれば、問題は、ページをクロールするときに、このコードに問題があることです。
なぜ私がそれのwindow.location.pathname
代わりに使用しているのか疑問に思っているならhistory.replace()
、今のところ説明する価値のない他の理由があるからです.