我正在使用打字稿和react-native-maps创建一个react-native应用程序。 我正在按照here给出他们的示例之一。
在尝试调用方法之前,必须创建一个 ref ,如示例所示,但出现以下错误。
“类型“地图”上不存在属性“地图””
这是我的代码。
import React, { Component } from "react";
import MapView, { Marker } from "react-native-maps";
export default class Map extends Component {
constructor(props: any) {
super(props);
this.state = {
region: {
latitude: LATITUDE,
longitude: LONGITUDE,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
},
coordinate: {
latitude: LATITUDE,
longitude: LONGITUDE
}
};
}
render() {
return (
<MapView
// Getting that error in this line
ref={map => { this.map = map; }}
style={{ flex: 1 }}
region={this.state["region"]}
>
<Marker coordinate={this.state["coordinate"]} />
</MapView>
);
}
}
我尝试了给定here的一些解决方案,但是我怀疑它不是对react-native的解决方案吗?
答案 0 :(得分:0)
这只是意味着它无法在组件上找到名为“ map”的现有属性。因此,您只需在构造函数上方添加一个初始的空属性即可消除该错误,如下所示:
import React, { Component } from "react";
import MapView, { Marker } from "react-native-maps";
export default class Map extends Component {
map: MapView // just add this to remove the error
constructor(props: any) {
super(props);
this.state = {
region: {
latitude: LATITUDE,
longitude: LONGITUDE,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
},
coordinate: {
latitude: LATITUDE,
longitude: LONGITUDE
}
};
}
render() {
return (
<MapView
// Getting that error in this line
ref={map => { this.map = map; }}
style={{ flex: 1 }}
region={this.state["region"]}
>
<Marker coordinate={this.state["coordinate"]} />
</MapView>
);
}
}
答案 1 :(得分:0)
尝试一下:
ref={(ref) => this.map = ref}