在组件 Description
中,我有一个按钮,当我按下按钮时,我将发送到标记的 Map
组件坐标:
const onNavigationTap = () => {
navigation.navigate('Map',{
destination: data["data"].coordinates,});
}
在组件 Map
中,我有条件:
const mapView = React.createRef();
if (route.params){
mapView.current.animateToRegion({
latitude: route.params.destination.latitude,longitude: route.params.destination.longitude,latitudeDelta: 0.4,longitudeDelta: 0.4,},1000);
}
return (
<MapView ref={mapView} />
)
所以当我打开 Map
时,我想在标记附近显示区域。我试图在地图屏幕上创建一个按钮:
<TouchableOpacity style={{
position: 'absolute',top: '5%',alignSelf: 'flex-start'
}} onPress={animateMap}><Text>Start</Text></TouchableOpacity>
然后我创建了函数:
const animateMap = () => {
mapView.current.animateToRegion({ // Takes a region object as parameter
latitude: destination.latitude,longitude: destination.longitude,1000);
}
这个在地图屏幕上带有按钮的解决方案工作正常,但我想要的是 animateToRegion 不是按下按钮,而是当用户从 Description
组件打开地图时。我不明白为什么在第一种情况下我得到了 Null is not an object(evaluating 'mapView.current.animateToRegion')
。请告诉我,如果我想使用从另一个组件获取的参数来制作 animateToRegion 应该怎么做?