无法读取地理定位中未定义的 属性 'ccords'

Cannot read property 'ccords' of undefined in geolocation

我正在尝试在我的 React 应用程序中使用地理定位。

我正在控制台中获取经纬度,但出现错误:

Unhandled Rejection (TypeError): Cannot read property 'coords' of undefined.

这是我的代码:

 const [location, setLocation]= useState({
      coordinates: {lat:"", long:""}
    });
    
    const onSucces = location=>{
      setLocation({
            coordinates:{
              lat: location.coords.latitude,
              long: location.coords.longitude
          }
      })
  };
 
  useEffect(()=>{
      if (!("geolocation" in navigator)){
        console.log("Geolocation is not supported")     
        
      }
      navigator.geolocation.getCurrentPosition(onSucces)

  }, []);
  console.log(location)


    const getTeamLeadersLocation = async () => {
      const result = await client.post('api/team/location',
      { 
        "Location":{
          "coords":{
            "latitude":location.coordinates.lat,
            "longitude":location.coordinates.long, 
          }
        } 
      } 
      )
      if(!result.ok){
        console.log(result, result.originalError, result.problem, result.status);
        return;
      }
      onSucces()
      console.log(result)
      
    }

    useEffect(() => {
      getTeamLeadersLocation();
    }, []);

请帮忙。

在您的 getTeamLeadersLocation() 函数中,您调用的 onSuccess 没有必需的 location 参数。所以它试图访问未定义的coords。因此你得到了错误。此外,您已经调用了您的状态 location 并且此变量可能会被隐藏,因此您应该重命名其中一个。这也减少了调试的混乱。