【发布时间】:2017-07-20 13:56:27
【问题描述】:
我正在尝试实现 react-native-maps 并出现此错误。我以前使用过这个组件,没有标题中描述的错误。这都在一个类组件中,然后我将其导出。
componentDidMount() {
navigator.geolocation.getCurrentPosition(
({ coords }) => {
const { latitude, longitude } = coords
this.setState({
position: {
latitude,
longitude,
},
region: {
latitude,
longitude,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
},
})
},
(error) => alert(JSON.stringify(error)),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
)
}
render() {
const { region, position } = this.state
return (
<View>
<MapView
style={styles.map}
region={region}
>
{position && (
<MapView.Circle
center={position}
radius={300}
strokeColor={'transparent'}
fillColor={'rgba(112,185,213,0.30)'}
/>
)}
{position && (
<MapView.Circle
center={position}
radius={100}
strokeColor={'transparent'}
fillColor={'#3594BC'}
/>
)}
</MapView>
</View>
)
}
}
【问题讨论】:
-
您的默认
state是什么样的?您在componentDidMount中调用navigator.geolocation.getCurrentPosition,因此根据状态的不同,region在渲染时可能是null。另请注意,navigator.geolocation.getCurrentPosition是异步的,因此即使您提前调用它,region在尝试渲染时仍可能为空。所以你应该默认region为某个值。 -
感谢@MichaelCheng,我意识到这是我的状态......只需“state = {}”修复它
标签: android react-native react-native-maps