react-native-maps 标记抛出和 IndexOutofBoundsException:索引 1 无效,大小



我正在尝试在我的Android设备上显示一个反应原生地图标记(它在iOS上工作得很好),但它给我抛出了一个索引越界异常:无效索引1,渲染时大小为0错误。

https://i.stack.imgur.com/9Scbw.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 组件中删除视图块,但这似乎没有帮助。在实际的应用程序中,我计划通过一个似乎在fitToCoordinates方法中工作的对象传递坐标。

这个问题没有给出解决方案,但它帮助我理解并修复了我的问题。我不认为View是问题,而是组件的渲染顺序。似乎,在Android上,渲染顺序很重要。因此,将Markers渲染为MapView的第一个孩子为我修复了它。

这里也提到:https://github.com/react-community/react-native-maps/issues/291

希望我能帮忙!

关系,实际上是MapView中的视图组件导致了问题。

将内部视图和市场放在一个视图中,这将解决问题。

对我来说

,解决方案是从中删除任何视图(可以是视图,图像等)。它与对象或秩序都没有联系。

相关内容

  • 没有找到相关文章

最新更新