1
我下面上反應原生地圖本教程:https://www.youtube.com/watch?v=MqLC0kOqrwk&t=1s陣營本地地圖 - 空對象引用
我的代碼是幾乎相同的導師(我沒有用MapView.Markers
),但我得到這個錯誤:嘗試來調用接口方法 '布爾 abi19_0_0.com.facebook.react.bridge.ReadableMap.hasKey(java.lang.String中)' 上的空對象引用
這是我的代碼:
import React from 'react';
import { View, Text, StyleSheet, Dimensions } from 'react-native';
import MapView from 'react-native-maps';
const { width, height } = Dimensions.get ('window')
const SCREEN_HEIGHT = height
const SCREEN_WIDTH = width
const ASPECT_RATIO = width/height
const LATITUDE_DELTA = 0.0922
const LONGTITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO
export default class MapScreen extends React.Component {
constructor (props) {
super (props)
this.state = {
initialPosition: {
latitude: 0,
longitude: 0,
latitudeDelta: 0,
longitudeDelta: 0,
}
}
}
watchID: ?number = null
componentDidMount() {
navigator.geolocation.getCurrentPosition ((position) => {
var lat = parseFloat (position.coords.latitude)
var long = parseFloat (position.coords.longitude)
var initialRegion = {
latitude: lat,
longitude: long,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGTITUDE_DELTA
}
this.setState ({ initialPosition: initialRegion })
},
(error) => alert (JSON.stringify (error)),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 })
this.watchID = navigator.geolocation.watchPosition ((position) => {
var lat = parseFloat (position.coords.latitude)
var long = parseFloat (position.coords.longitude)
var lastRegion = {
latitude: lat,
longitude: long,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGTITUDE_DELTA
}
this.setState ({ initialPosition: lastRegion })
})
}
componentWillUnmount() {
navigator.geolocation.clearWatch (this.watchID)
}
render() {
return (
<MapView
style = { styles.mapContainer }
region = {this.state.initialPosition}
/>
);
}
}
請檢查react-native和react-native-maps的兼容性。最新的0.47版本存在問題。您使用哪種版本的react-native和RNMaps?嘗試RN v。0.44 - 現在看起來非常穩定。 –
RN:0.46.1,RNMaps:0.16.0 我試過更新和重新鏈接,但什麼也沒有。將再次嘗試RN 0.44。 –
製作了一個RN 0.44.0的項目,並且遇到了最新版本中不存在的Android SDK問題。我會堅持最新的。 –