使用 React Hooks 更新位置会出现错误:更新由 AIRMAP 管理的视图的“区域”时出错
Posted
技术标签:
【中文标题】使用 React Hooks 更新位置会出现错误:更新由 AIRMAP 管理的视图的“区域”时出错【英文标题】:Using React Hooks to update location give error: Error while updating 'region' of a view managed by: AIRMAP 【发布时间】:2019-11-14 01:05:34 【问题描述】:我有这个错误,我不知道出了什么问题。我正在使用 React Hooks(useState 和 useEffect) 来更新用户在 react 本机应用程序中的当前位置。
import React, useEffect, useState from 'react';
import MapView, PROVIDER_GOOGLE from 'react-native-maps';
import Geolocation from '@react-native-community/geolocation';
const MapScreen = () =>
const [location, setLocation] = useState(
latitude: 18.9712,
longitude: -72.2852,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
);
useEffect(() =>
Geolocation.getCurrentPosition(position =>
const region =
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.001,
longitudeDelta: 0.001,
setLocation(region)
)
, [])
return (
<MapView
provider=PROVIDER_GOOGLE
style=flex: 1
showsUserLocation=true
region=location
/>
)
export default MapScreen
【问题讨论】:
我认为问题出在setLocation(region)
。试试这个setLocation(region)
没错,请添加答案,以便我接受它作为正确答案,而不仅仅是评论。谢谢
【参考方案1】:
我认为问题就在这里,
setLocation(region)
这里region
是一个对象,所以它变成了
setLocation(
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.001,
longitudeDelta: 0.001,
)
setState 不正确。
你只需要设置区域,
setLocation(region)
【讨论】:
以上是关于使用 React Hooks 更新位置会出现错误:更新由 AIRMAP 管理的视图的“区域”时出错的主要内容,如果未能解决你的问题,请参考以下文章
React 17 - 添加 Evergreen UI 窗格会导致错误:无效的挂钩调用。 Hooks 只能在函数组件的主体内部调用