来自 json GPS API 的 React Native 动态更新状态



>我有谷歌地图,我需要从自定义API动态更新带有GPS纬度和经度坐标的标记。我已经编写了componentWillMount()函数,在其中获取日期,但由于某种原因数据未传递到经度/纬度的当前状态。我是反应本机的新手,我已经构建了两个功能齐全的应用程序,但我仍在为状态而苦苦挣扎。

我尝试了很多硬编码示例,这些示例都对我有用,但来自 API 的响应并将其设置为地图上的引脚不是。

class MarkerTypes extends React.Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
jsondata: [],
error: null,

代码的第二部分,我在其中完成了函数。这就是 API 返回的内容

{"lat": "45.23846817", "lon": "19.80212021"}
fetchData() {
fetch('API')
.then((response) => response.json())
.then(data =>
this.setState({
jsondata: data,
isLoading: false,
})
)
}
componentDidMount() {
this.fetchData();
console.log(this.jsondata)
}

第三部分,我希望在 API 位置虎钳中进行更改后指出并更新我的标记。我的响应控制台日志似乎很好,但我以后无法获取为标记传递的值,一直说未定义。

<MapView.Marker
testID="API GPS"
coordinate={this.state.jsondata}
image={this.Marker}
/>

似乎无法在线找到解决方案。与我的问题相关的所有解决方案似乎都是使用地理位置或对代码部分进行硬编码,这对我在这里的问题根本没有帮助。

标记将坐标作为 LatLng,这意味着您需要将协调器值作为

{
latitude:value, 
longitude:value
}

在您的情况下,它作为{lat:value, lon:value}传递

从 API 获得响应后,将数据存储在对象中

this.setState({
jsondata: {latitude:data.lat, longitude:data.lon},
isLoading: false,
})

最新更新