小编Rud*_*udy的帖子

获取地理位置后,React-Native-Maps似乎不会重新渲染

我正在尝试创建一个加载谷歌地图的简单应用程序(使用airbnb的react-native-maps库)并显示用户的当前位置.我所看到的是,一旦获得用户的位置,地图总是显示默认的初始位置而不是重新渲染.

我正在使用React 0.42并仅在iOS上进行测试.以下是一些澄清的代码:

1.)我设置了一个初始状态

state = {
      region: {
        latitude: 52,
        longitude: 5,
        latitudeDelta: 0.0922,
        longitudeDelta: 0.0421
      }
  }
Run Code Online (Sandbox Code Playgroud)

2.)我在componentDidMount中获取用户的位置

componentDidMount() {
    navigator.geolocation.getCurrentPosition(
      (position) => {
        this.setState({
          region: {
            latitude: position.coords.latitude,
            longitude: position.coords.longitude,
            latitudeDelta: 0.01,
            longitudeDelta: 0.0011
          }
        });
      },
      (error) => alert(JSON.stringify(error)),
      {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
    );
  }
Run Code Online (Sandbox Code Playgroud)

3.)使用渲染,我显示具有初始区域的地图,并期望一旦获取用户的位置就改变该区域

render() {
    return (
     <View style={{ flex: 1 }}>
       <View style={{backgroundColor: 'coral', height: 70, justifyContent: 'center', alignItems: 'center'}}>
         <Text>
            <Text>longitude: {this.state.region.longitude}</Text>
            <Text>latitude: {this.state.region.latitude}</Text>
        </Text>
       </View>
       <View style={styles.container}>
         <MapView …
Run Code Online (Sandbox Code Playgroud)

react-native react-native-maps

8
推荐指数
1
解决办法
5337
查看次数

标签 统计

react-native ×1

react-native-maps ×1