web-dev-qa-db-fra.com

TypeError: undefined n'est pas un objet (évaluation de 'navigator.geolocation.requestAuthorization')

J'essaie d'appeler:

`navigator.geolocation.requestAuthorization();`

pour demander l'autorisation de géolocalisation.

Mais cela entraîne une erreur lors de l'exécution dans le simulateur iOS

Cela fonctionnait à un moment donné, mais s'est arrêté. J'ai tenté de supprimer et de créer un nouveau projet. J'ai également essayé de désinstaller/réinstaller le nœud et react-native-cli.

import React, {Fragment, Component} from 'react';
import {
  SafeAreaView,
  StyleSheet,
  ScrollView,
  View,
  Text,
  StatusBar,
} from 'react-native';

import {
  Header,
  LearnMoreLinks,
  Colors,
  DebugInstructions,
  ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';

export default class App extends Component {

    constructor(props)
    {
        super(props);

        navigator.geolocation.requestAuthorization();
    }

    render() {

        return (

                <View style={styles.MainContainer}>
                <SafeAreaView style={{flex: 1, backgroundColor: '#fff'}}>
                <Text style={styles.sectionTitle}>Hello World!</Text>
                </SafeAreaView>
                </View>

                );
    }
}

const styles = StyleSheet.create({
  MainContainer :{
     justifyContent: 'center',
     flex:1,
     margin: 5,
     marginTop: (Platform.OS === 'ios') ? 20 : 0,
  },
  sectionTitle: {
    fontSize: 24,
    fontWeight: '600',
    color: Colors.black,
  },
});

Je reçois cette erreur:

[error][tid:com.facebook.react.JavaScript] TypeError: undefined is not an object (evaluating 'navigator.geolocation.requestAuthorization')

This error is located at:
    in App (at renderApplication.js:40)
    in RCTView (at View.js:35)
    in View (at AppContainer.js:98)
    in RCTView (at View.js:35)
    in View (at AppContainer.js:115)
    in AppContainer (at renderApplication.js:39)
13
digitalbeans

Veuillez vous assurer d'avoir ajouté libRCTGeolocation.a dans Build Phases -> Link Binary With Libraries sur les paramètres de votre projet Xcode et RCTGeolocation.xcodeproj sous Bibliothèques de votre projet Xcode.

0
Rajkumar

À partir de RN 0.6 ou version ultérieure, la géolocalisation n'est pas incluse dans le noyau RN.Si vous souhaitez utiliser son API, vous devez suivre les étapes de ce lien: https://github.com/react-native-community/react-native-geolocation

0
KieuThang