【问题标题】:setState not working- React Native maps does not display user current locationsetState 不工作 - React Native 地图不显示用户当前位置
【发布时间】:2021-06-11 13:00:53
【问题描述】:
  const [initialPosition,setInitialPosition] = useState({
    latitude: 0,
    longitude: 0,
    latitudeDelta: 0.0922,
    longitudeDelta: 0.0421,
  })
  
  const locateCurrentPosition=() => {
    Geolocation.getCurrentPosition(
      position =>{
        // console.log(JSON.stringify(position));
        let currentLocation={
          latitude: position.coords.latitude,
          longitude: position.coords.longitude,
          latitudeDelta: 0.0922,
          longitudeDelta: 0.0421,
        }
       setInitialPosition(currentLocation);
      //  console.log(initialPosition);
      }
    )
  }
  useEffect(()=>{
    locateCurrentPosition();
  },[])

setInitialPosition(currentLocation);不更新状态值,并为纬度和经度返回 0。因此,当前位置不会显示在应用程序中,而是在应用程序启动时显示 (0,0) 位置。请帮助我。如果需要任何其他 sn-p 代码,请告诉我。 提前致谢。

【问题讨论】:

    标签: android reactjs react-native react-hooks react-native-maps


    【解决方案1】:

    试试这个例子:

    import Geolocation from '@react-native-community/geolocation';
    import MapView from 'react-native-maps';
    
    const [latitude,setlatitude] = useState(0);
    const [longitude,setlongitude] = useState(0);
    const [coordinates,setcoordinates] = useState([]);
    
    const locateCurrentPosition=() => {
            Geolocation.getCurrentPosition(
                position =>{
                  setlatitude(position.coords.latitude);
                  setlongitude(position.coords.longitude);
                },
              )
          }
    
    useEffect(()=>{
            locateCurrentPosition();
          },[])
    
    <View style={{ flex: 1 }}>
                    <MapView
                    style={{ flex: 1, width: "100%" }}
                    region={{
                        latitude: latitude,
                        longitude: longitude,
                        latitudeDelta: 0.0922,
                        longitudeDelta: 0.0421,
                    }}
                    >
                    <MapView.Marker
                        coordinate={{
                            latitude: latitude,
                            longitude: longitude,
                          }}
                    />
                    </MapView>
          </View>
    

    【讨论】:

      猜你喜欢
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2020-09-15
      • 2013-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多