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

Posted

技术标签:

【中文标题】类型“MapView”上不存在属性“地图”【英文标题】:Property 'map' does not exist on type 'MapView' 【发布时间】:2020-05-01 09:31:45 【问题描述】:

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

【问题讨论】:

【参考方案1】:

这只是意味着它无法在您的组件上找到名为“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>
    );
  

【讨论】:

这修复了它。谢谢。【参考方案2】:

试试这个:

ref=(ref) => this.map = ref

【讨论】:

以上是关于类型“MapView”上不存在属性“地图”的主要内容,如果未能解决你的问题,请参考以下文章

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

“对象”类型上不存在 Angular 6 属性“地图”

Subject<MessageEvent> 类型上不存在专有“地图”

类型“typeof ...”上不存在属性“use”,类型“typeof”上不存在属性“extend”

TypeScript:类型“”上不存在属性

错误 TS2339:类型“”上不存在属性“包含”