Reactjs React Native MapView Expo在Android上不起作用
我对Android上的地图和React Native上的Expo有问题,但在IOS上一切都正常!!!有人能帮忙从“React”导入React吗; 进口{ 评估学, 文本, 看法 样式表, 形象,, 警觉的, 按钮 触控高光, 异步存储, }从“反应本机”Reactjs React Native MapView Expo在Android上不起作用,reactjs,react-native,Reactjs,React Native,我对Android上的地图和React Native上的Expo有问题,但在IOS上一切都正常!!!有人能帮忙从“React”导入React吗; 进口{ 评估学, 文本, 看法 样式表, 形象,, 警觉的, 按钮 触控高光, 异步存储, }从“反应本机” import Router from '../main'; import Expo from 'expo'; import
import Router from '../main';
import Expo from 'expo';
import FontAwesome, { Icons } from 'react-native-fontawesome';
import {
createRouter,
NavigationProvider,
StackNavigation,
} from '@expo/ex-navigation';
import MapView from 'react-native-maps';
import WebView from 'react-native-maps';
var Item = require('./languages/dictionary.json');
export default class Maps extends React.Component {
static route = {
navigationBar: {
title: function(params) {
if (typeof params.language === 'undefined') {
return '';
}
return Item[params.language].maps;
}
}
}
constructor(props) {
super(props);
this.state = {
data:[{
id:"",
name:"",
address:"",
lat:"",
lng:""
}],
settings:[{
ImageFolder:"",
TimeToUpdate:""
}],
language:0,
latitude: null,
longitude: null,
latitudeDelta:0.0000467769713,
longitudeDelta:0.0421,
error: null,
//version:null,
};
}
componentDidMount() {
AsyncStorage.getItem("version").then((value)=>{
this.setState({"version":value})
}).done();
AsyncStorage.getItem("radius").then((value)=>{
this.setState({"radius":value})
}).done();
AsyncStorage.getItem("language").then((value)=>{
this.setState({"language":value})
}).done();
AsyncStorage.getItem("language").then((value)=>{
//this.setState({"language":value})
this.setState({language: value})
//console.warn(this.state.language)
this.props.navigator.updateCurrentRouteParams({language: value});
}).done();
navigator.geolocation.getCurrentPosition(
(position) => {
this.setState({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta:0.0000467769713,
longitudeDelta:0.0421,
error: null,
});
//Alert.alert("https://api.parkingwatcher.com/"+this.state.version+"/parkings.php?lat="+this.state.latitude+"&lng="+this.state.longitude+"&radius="+this.state.radius)
fetch("https://api.parkingwatcher.com/"+this.state.version+"/parkings.php?lat="+this.state.latitude+"&lng="+this.state.longitude+"&radius="+this.state.radius)
.then((response) => response.json())
.then((responseData) => {
this.setState({data: responseData});
})
.done();
fetch("https://api.parkingwatcher.com/"+this.state.version+"/settings.php")
.then((response) => response.json())
.then((responseData) => {
this.setState({settings: responseData});
})
.done();
},
(error) => this.setState({ error: error.message }),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 },
);
}
onPressAddFavourites(){
Alert.alert(
'Alert Title',
'My Alert Msg'
)
}
render() {
return (
<View style={styles.container}>
<MapView style={styles.map}
showsScale
showsPointsOfInterest
region={{
latitude: parseFloat(this.state.latitude),
longitude: parseFloat(this.state.longitude),
latitudeDelta: parseFloat(this.state.latitudeDelta),
longitudeDelta:parseFloat(this.state.longitudeDelta),
}}
>
{this.state.data.map(marker => {
return(
<MapView.Marker coordinate={{
latitude: parseFloat(marker.lat),
longitude: parseFloat(marker.lng),
}}
>
<MapView.Callout>
<View>
{/*<Image source={{uri: 'https://data.parkingwatcher.com/parkings/'+marker.id+'.jpg'}} style={{height: 200, width: 200}} />*/}
<Image source={{uri: this.state.settings.ImageFolder + marker.id+'.jpg'}} style={{height: 200, width: 200}} />
<Text style={styles.name}>{marker.name}</Text>
<Text style={styles.address}>{marker.address} {this.state.language}</Text>
{/*<Text>{this.state.radius} </Text>*/}
{/*<Text>{this.state.settings.ImageFolder} </Text>*/}
<Button
onPress={this.onPressAddFavourites}
title="Add to Favourites"
color="#841584"
accessibilityLabel="Add to Favourites"
/>
</View>
</MapView.Callout>
</MapView.Marker>
)
})}
</MapView>
</View>
);
}
}
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
map: {
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
},
name:{
textAlign : 'center',
},
address:{
textAlign : 'center',
}
});
从“../main”导入路由器;
从“世博会”导入世博会;
从“react native FontAwesome”导入FontAwesome,{Icons};
进口{
创建路由器,
导航提供者,
StackNavigation,
}来自“@expo/ex-navigation”;
从“react native maps”导入MapView;
从“react native maps”导入WebView;
var Item=require('./languages/dictionary.json');
导出默认类映射扩展React.Component{
静态路由={
导航栏:{
标题:函数(参数){
if(typeof params.language==‘未定义’){
返回“”;
}
返回项[params.language].maps;
}
}
}
建造师(道具){
超级(道具);
此.state={
数据:[{
id:“”,
姓名:“,
地址:“,
拉丁语:“,
液化天然气:“
}],
设置:[{
ImageFolder:“”,
时间更新:“
}],
语言:0,
纬度:空,
经度:空,
latitudeDelta:0.0000467769713,
纵向德尔塔:0.0421,
错误:null,
//版本:null,
};
}
componentDidMount(){
AsyncStorage.getItem(“版本”)。然后((值)=>{
this.setState({“version”:value})
}).完成();
AsyncStorage.getItem(“半径”)。然后((值)=>{
this.setState({“radius”:value})
}).完成();
AsyncStorage.getItem(“语言”)。然后((值)=>{
this.setState({“language”:value})
}).完成();
AsyncStorage.getItem(“语言”)。然后((值)=>{
//this.setState({“language”:value})
this.setState({language:value})
//console.warn(this.state.language)
this.props.navigator.updateCurrentRouteParams({language:value});
}).完成();
navigator.geolocation.getCurrentPosition(
(职位)=>{
这是我的国家({
纬度:位置。坐标。纬度,
经度:position.coords.longitude,
latitudeDelta:0.0000467769713,
纵向德尔塔:0.0421,
错误:null,
});
//警报。警报(“https://api.parkingwatcher.com/“+this.state.version+”/parkings.php?lat=“+this.state.latitude+”&lng=“+this.state.longitude+”&radius=“+this.state.radius”)
取回(“https://api.parkingwatcher.com/“+this.state.version+”/parkings.php?lat=“+this.state.latitude+”&lng=“+this.state.longitude+”&radius=“+this.state.radius”)
.then((response)=>response.json())
.然后((响应数据)=>{
this.setState({data:responseData});
})
.完成();
取回(“https://api.parkingwatcher.com/“+this.state.version+”/settings.php”)
.then((response)=>response.json())
.然后((响应数据)=>{
this.setState({settings:responseData});
})
.完成();
},
(error)=>this.setState({error:error.message}),
{enableHighAccurance:true,超时:20000,最大值:1000},
);
}
OnPressAddFavorites(){
警惕,警惕(
“警报标题”,
“我的提醒信息”
)
}
render(){
返回(
{this.state.data.map(marker=>{
返回(
{/**/}
{marker.name}
{marker.a