了解如何修復“referenceerror: window未定義”錯誤。
在Node.js或類似Next.js的工具中,你可能會遇到這個錯誤。
window
是瀏覽器提供的一個對象,在服務器端的JavaScript環境中不可用。
我在我的詳細的DOM 文檔物件模型指南中詳細介紹了window
對象。
對於Node.js來說,沒有辦法解決這個問題 - 你必須找到使用window
的特定位置,並重新檢查代碼以找出為什麼要訪問window
對象。
你在後端環境中運行前端代碼。
在Next.js中,你可以通過將代碼包裝在條件語句中來解決這個問題。
該代碼在兩種情況下運行 - 前端情況下,當你使用鏈接訪問頁面時,以及如果你在頁面中引入了服務器端的代碼,例如通過運行getServerSideProps()
。
在這種情況下,你可以將引用限制在一個條件語句中,檢查window
對象是否可用,像這樣:
if (typeof window !== 'undefined') {
// 這裡`window`是可用的
}
這樣就可以解決你的問題,因為你只在瀏覽器環境中運行條件語句內的任何代碼。