道具'coordinate.longitude'在'MapMarker'中被标记为必需,但它的值是未定义的

Posted

技术标签:

【中文标题】道具\'coordinate.longitude\'在\'MapMarker\'中被标记为必需,但它的值是未定义的【英文标题】:The prop 'coordinate.longitude' is marked as required in 'MapMarker', but it's value is undefined道具'coordinate.longitude'在'MapMarker'中被标记为必需,但它的值是未定义的 【发布时间】:2021-12-26 06:17:13 【问题描述】:

当我在做我的毕业设计时,我遇到了 expo/react 原生 mapView 的一些问题,它给了我这个错误,所以请任何人尽快帮助我。

如果你想检查,这是我的代码:

import React,  Component  from "react";
import  View, I18nManager, StyleSheet,  from 'react-native';
import MapView,  Marker  from 'react-native-maps';



I18nManager.allowRTL(false);
export default class MyMapView extends Component 

    //default state
    constructor(props) 
        super(props);

        
        
    
    

    render() 
      
        return (
            <View style=styles.container>
              <MapView
                    style=styles.map
                    region=
                        //we have muliple locations so we pass them here
                        latitude: this.props.latitude,longitude: this.props.longitude,
                        latitudeDelta:this.props.latitudeDelta ,
                        longitudeDelta: this.props.longitudeDelta, 
                     
                >

                    <Marker coordinate=   latitude: this.props.latitude,longitude: this.props.longitude />
                </MapView>
            </View>
        );


    

const styles = StyleSheet.create(
    container: 
        ...StyleSheet.absoluteFillObject
    ,
    map: 
        ...StyleSheet.absoluteFillObject
    
);

【问题讨论】:

Under what circumstances may I add "urgent" or other similar phrases to my question, in order to obtain faster answers? 【参考方案1】:

我认为您应该添加一个条件以确保您的道具不为空。 试试这样的:

export default class MyMapView extends Component 

...     

    render() 
      
        return (
            this.props && <View style=styles.container>
              <MapView
                    style=styles.map
                    region=
                        //we have muliple locations so we pass them here
                        latitude: this.props.latitude,longitude: this.props.longitude,
                        latitudeDelta:this.props.latitudeDelta ,
                        longitudeDelta: this.props.longitudeDelta, 
                     
                >

                    <Marker coordinate=   latitude: this.props.latitude,longitude: this.props.longitude />
                </MapView>
            </View>
  
           );


    

【讨论】:

由于(this.props)中的点而给我一个错误 它给你的错误是什么?

以上是关于道具'coordinate.longitude'在'MapMarker'中被标记为必需,但它的值是未定义的的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义百度地图的定位图标 ios

在 React.js 中进行道具验证时道具类型失败

Typescript & React:在组件之间传递道具与默认道具

Vetur 说,在模板上使用道具时,“从不”类型中不存在道具

在mapStateToProps中收到另一个道具时更新道具

当父组件在其子组件中注入道具时,如何在 Typescript 中定义道具?