问题:initialRegion.latitude` 在`MapView` 中被标记为必需,但它的值为`undefined` 但我有数据

问题描述

我已经为它完美使用的 lat、lon、latdelta 和 longdelta 定义了一些静态值。问题是,当我获取用户坐标时(必须在访问地图屏幕时完成,因此我使用 componentDidMount)来执行 initialRegion 的 setState,它表示 initialRegion 需要纬度,但未定义。

执行 console.log 我可以看到它确实获得了真实数据,但由于某种我不明白的原因而失败。

代码如下:

constructor(props){
    super(props);
    
    this.state = {       
        errorMessage: '',initialRegion:{
            latitude:37.0924442,longitude:-3.6607718,latitudeDelta:0.04,longitudeDelta:0.05,}
    }
    }

_getLocation = async () => {
    const {status} = await Permissions.askAsync(Permissions.LOCATION);

    if(status !== 'granted'){
        console.log('Permissions not granted!');
        this.setState({
            errorMessage: 'Permision not granted'
        })
    }

    const location = await Location.getCurrentPositionAsync();
    
    

    this.setState({
        initialRegion:location
        
    })
}

componentDidMount(){
    this._getLocation();
}

来自控制台的图像:https://i.stack.imgur.com/pIGcg.png

我认为initialRegion放置正确,但它是:

{console.log(this.state.initialRegion)}
<MapView style={styles.map}
        provider={this.props.provider}
        initialRegion={this.state.initialRegion}/>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)