我正在尝试在我的Android设备上显示一个react-native-maps Marker(它在iOS上工作得非常好)但是它给我一个IndexOutofBoundsException:索引1无效,渲染时大小为0错误。
http://i.imgur.com/owletnw.png
render() {
const INITIAL_REGION = { latitude: 52.221835, longitude: 21.000896, latitudeDelta: 0.0922, longitudeDelta: 0.0421 };
return (
<MapView ref="map"
showsUserLocation = { true }
loadingEnabled = { true }
showsTraffic = { false }
showsBuildings = { false }
style = { styles.map, {flex: 1} }
initialRegion = { INITIAL_REGION }
>
<View style={{flex: 0.1, flexDirection: 'row', position: 'absolute', justifyContent: 'space-between', backgroundColor: 'transparent'}}>
<Button onPress={() => this.showWithinRadius(5)}>Wszystkie ~5km</Button>
<Button onPress={() => this.showWithinRadius(10)}>Wszystkie ~10km</Button>
<Button onPress={() => this.showWithinRadius(15)}>Wszystkie ~15km</Button>
<Button onPress={() => this.showAllOffers()}>Wszystkie oferty</Button>
</View>
{ console.log(this.state.offerLocation) }
<Marker
coordinate = { {latitude: 52.259216308593, longitude: 21.041564941406} }
title = { this.props.selectedOffer.offer.title }
/>
</MapView>
);
}
知道可能导致此行为的原因是什么?我尝试从MapView组件中删除View块,但这似乎没有帮助。在实际的应用程序中,我打算通过一个似乎在fitToCoordinates方法中工作的对象传递坐标。
答案 0 :(得分:1)
没关系,事实上MapView中的View组件导致了这个问题。
答案 1 :(得分:1)
此问题没有解决方案,但是它帮助我理解和解决了我的问题。
我不认为View
是问题,而是呈现组件的顺序。
在Android上,渲染顺序似乎很重要。
因此,将Markers
渲染为MapView
的第一个子代为我修复了此问题。
这里也提到: https://github.com/react-community/react-native-maps/issues/291
希望我正在帮助!
答案 2 :(得分:0)
将内部View和市场放入一个View中,这将解决问题。
答案 3 :(得分:0)
对我来说,解决方案是从中删除任何视图(可以是视图,图像等)。 它与对象没有关系,也与订单没有关系。