类型“ MapView”上不存在属性“地图”

时间:2020-01-14 15:58:04

标签: reactjs typescript react-native react-native-maps

我正在使用打字稿和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的解决方案吗?

2 个答案:

答案 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}