在浏览器中测试地理位置时出错
Getting error while testing for geolocation in the browser
我正在尝试在我的应用程序中使用地理定位 API。幸运的是,我在 MDN website 找到了一个我想使用的,但是当我尝试测试地理定位对象(如果它存在于浏览器中)时,我得到了这个错误:
Server Error
ReferenceError: navigator is not defined
This error happened while generating the page. Any console logs will be displayed in the terminal window.
Source pages/index.js (24:20) @ eval
22 | }
23 |
> 24 | if('geolocation' in navigator) {
| ^
25 | console.log('It does exist')
26 | } else {
27 | console.log('doesn't exist')
这是我尝试实现的代码(来自 MDN 文档网站):
if('geolocation' in navigator) {
/* geolocation is available */
} else {
/* geolocation IS NOT available */
}
你能告诉我我做错了什么以及如何解决吗?
服务器上没有 window
对象。当你想使用 window
对象时,你需要在 client 端进行。所以在你的反应组件中,你需要使用 useEffect
因为这个函数在浏览器中只有 运行s.
useEffect(()=>{
if('geolocation' in navigator) {
/* geolocation is available */
} else {
/* geolocation IS NOT available */
}
},[])
useEffect
里面的函数会运行当组件在浏览器中挂载时
我正在尝试在我的应用程序中使用地理定位 API。幸运的是,我在 MDN website 找到了一个我想使用的,但是当我尝试测试地理定位对象(如果它存在于浏览器中)时,我得到了这个错误:
Server Error
ReferenceError: navigator is not definedThis error happened while generating the page. Any console logs will be displayed in the terminal window.
Source pages/index.js (24:20) @ eval22 | } 23 | > 24 | if('geolocation' in navigator) { | ^ 25 | console.log('It does exist') 26 | } else { 27 | console.log('doesn't exist')
这是我尝试实现的代码(来自 MDN 文档网站):
if('geolocation' in navigator) {
/* geolocation is available */
} else {
/* geolocation IS NOT available */
}
你能告诉我我做错了什么以及如何解决吗?
服务器上没有 window
对象。当你想使用 window
对象时,你需要在 client 端进行。所以在你的反应组件中,你需要使用 useEffect
因为这个函数在浏览器中只有 运行s.
useEffect(()=>{
if('geolocation' in navigator) {
/* geolocation is available */
} else {
/* geolocation IS NOT available */
}
},[])
useEffect
里面的函数会运行当组件在浏览器中挂载时