【发布时间】:2022-10-05 02:38:01
【问题描述】:
目前,我正在使用 Expo 将我的 Web 应用程序重写为 React Native 应用程序。当我打开正确的屏幕(使用 rnmapbox/maps#main)时,我已经设法让地图正常工作和渲染。
但是,当我离开这个屏幕(使用标签导航)然后再次打开它时,应用程序只是冻结,后来 Android 告诉我应用程序没有响应。
我首先认为这是因为我的 Stack Navigator 上有 detachInactiveScreens={false},但禁用它并不会改变问题。
我正在使用地图的 MapBox 实现。如果这有什么不同的话。
这可能是由于仿真造成的吗?我现在没有要测试的物理 android 设备。我在这里发现了一个类似的问题,并发现了一些关于在我的地图中包含组件的信息,但是,即使我的地图中没有任何组件,它仍然会做同样的事情。
我当前的代码:
import React from 'react'
import { Text, View, StyleSheet } from 'react-native'
import { GlobalStyles } from '../../../Constants/theme';
import MapboxGL from '@rnmapbox/maps';
MapboxGL.setAccessToken('pk.TOKEN');
export const MapScreen = () => {
return (
<View style={ styles.container }>
<MapboxGL.MapView styleURL='mapbox://styles/arilith/ckr9r509238t817mxz75lwbxt' style={ styles.map }>
</MapboxGL.MapView>
</View>
)
}
const styles = StyleSheet.create({
container: {
...GlobalStyles.pageContainer,
padding: 0,
},
innerContainer: {
flex: 1,
justifyContent: 'center',
padding: 40,
},
map: {
flex: 1,
}
});
编辑:或者有什么方法可以查看日志(在模拟器/博览会中)看看它为什么挂起?由于目前世博会挂起时不会记录任何内容。
EDIT2:经过进一步调查,当地图在堆栈视图中作为屏幕来回切换时,不会发生此问题。看起来它与使用 Tab Navigator 有关...
【问题讨论】:
标签: android reactjs react-native mapbox