Ошибка React-Native-Maps (Супер-выражение должно быть либо нулевым, либо функцией) - PullRequest
0 голосов
/ 26 декабря 2018

Может ли кто-нибудь помочь мне с этой ошибкой?

Я изучаю и копирую код из учебника YouTube о React-Native-Maps для отображения текущего местоположения.Ссылка: https://www.youtube.com/watch?v=MqLC0kOqrwk

Ошибка: Супер-выражение должно быть либо нулевым, либо функцией

Я использую последнюю версию React-Native-Maps React-NativeВерсия карты: "^ 0.22.1",

This is my code. Это мой код.

      import React from 'react';
      import {
        AppRegistry,
        Component,
        StyleSheet,
        View,
        Text,
        screen,
        Dimensions,
        TouchableOpacity,
        Platform,
      } from 'react-native';

      import MapView from 'react-native-maps';
      import Strings from '../utils/Strings';

      var styles = require('../../assets/files/Styles');
      const {height, width} = Dimensions.get('window');
     const SCREEN_HEIGHT = height
     const SCREEN_WIDTH = width
     const ASPECT_RATIO = width / height

    const LATITUDE_DELTA = 0.00922;
    const LONGITUDE_DELTA = LATITUDE_DELTA * ASPECT_RATIO;

      export default class Track extends Component {
        static navigationOptions = {
            title: `${Strings.ST6}`,
          };

        constructor(props) {
            super(props)

          this.state = {
              initialPosition: {
                  latitude: 0,
                  longitude: 0,
                  latitudeDelta: 0,
                  longitudeDelta: 0
              },
              markerPosition: {
                    latitude: 0,
                    longitude: 0
              }
            }
        }

        watchID = null

        componentDidMount(){
            navigator.geolocation.getCurrentPosition((position) => {
                var lat = parseFloat(position.coords.latitude)
                var long = parseFloat(position.coords.longitude)

                var initialRegion = {
                    latitude: lat,
                    longitude: long,
                    latitudeDelta: LATITUDE_DELTA,
                    longitudeDelta: LONGTITUDE_DELTA
                }

                this.getState({initialPosition: initialRegion})
                this.getState({markerPosition: initialRegion})
            },
            (error) => alert(JSON.stringify(error)),
            {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000})

            this.watchID = navigator.geolocation.watchPosition((position) => {
                var lat = parseFloat(position.coords.latitude)
                var long = parseFloat(position,coords,longitude)

                var lastRegion = {
                    latitude: lat,
                    longitude: long,
                    longitudeDelta: LONGTITUDE_DELTA,
                    latitudeDelta: LATITUDE_DELTA
                }

                this.setState({initialPosition: lastRegion})
                this.setState({markerPosition: lastRegion})
            }) 
        }

        componentWillUnmount() {
            navigator.geolocation.clearWatch(this.watchID)
        }

        render() {
            return(
                <View style={style.container}>
                <MapView
                style={styles.map}
                region={this.state.initialPosition}>

                <MapView.Marker>
                    coordinate={this.state.markerPosition}
                    <View Style={styles.radius}>
                        <View Style={styles.marker}>
                        </View>
                    </View>
                </MapView.Marker>
                </MapView>
                </View>
            );
        }
    }

Я думаю, ошибка где-то около

    constructor(props) {
        super(props)

Но я не вижу ошибки здесь, супер должно быть хорошо, результат такой же, даже яудалить (реквизит).

1 Ответ

0 голосов
/ 25 мая 2019

В вашем коде class Track extends Component вы забыли вызвать свойства реаги .пожалуйста, измените ваш код на class Track extends React.Component.

Поскольку вы просто вызываете Компонент, а реагируете, не знаете, откуда взялся «Компонент»

...