我遇到了同样的问题,并通过使用和EventEmitter将位置更新分配给UI组件来解决此问题。
最高文件:
import EventEmitter from 'EventEmitter'
const locationEmitter = new EventEmitter();
didmount:
locationEmitter.on(LOCATION_UPDATE, (locationData) => {
console.log('locationEmitter locationUpdate fired! locationData: ', locationData);
let coordinatesAmount = locationData.newRouteCoordinates.length - 1;
this.setState({
latitude: locationData.newRouteCoordinates[coordinatesAmount - 1].latitude,
longitude: locationData.newRouteCoordinates[coordinatesAmount - 1].longitude,
routeCoordinates: this.state.routeCoordinates.concat(locationData.newRouteCoordinates)
})
})
组成灯:
locationEmitter.off(LOCATION_UPDATE);
内部背景任务定义:
locationEmitter.emit(LOCATION_UPDATE, locationData)
这成功地从背景任务发送了位置数据,但是我仍然陷入了如何使背景任务发送位置更新批次的问题。我的相关帖子在这里。