Cordova Geolocalisation!

Hello Hello,

J’ai récemment essayé de mettre en place un google maps sur mon projet Vue. J’ai utilisé cordova ainsi que son plugin comme base pour récupérer les données nécessaires.

Mon erreur est simple, mais je bloque complètement, j’ai une :

Uncaught TypeError: Cannot set property ‘Lat’ of undefined
at onSuccess (Map.vue?1d0e:54)

Impossible de trouver la solution, voici mon code :

Le but étant de push la Latitude et la Longitude ici :
image

J’espère que c’est compréhensible ^^"
Un grand merci pour l’aide que vous pourriez m’apporter !
J’aimerai comprendre ou est mon erreur ><"

le problème est qu’en écrivant function onSuccess, tu redéfinies this à l’intérieur (qui ne désigne plus de l’instance de composant)

plusieurs solutions :

  1. (ma préférée) utiliser des methods de composants :
created() {
  ...getCurrentPosition(this.onSuccess, ...)
},
methods: {
  onSuccess() {
    this.Lat = ...
  }
}

cela revient à la méthode suivante (1.) car vue bind lui meme les methods à l’instance de composant et tu peux réutiliser les méthodes définies (utile lorsque tu veux attacher puis détacher un listener)

  1. binder this
created() {
  function onSuccess() {
    this.Lat = ...
  }
  ...getCurrentPosition(onSuccess.bind(this), ...)
  1. assigner this à une variable
created() {
  const self = this
  function onSuccess() {
    self.Lat = ...
  }
  ...getCurrentPosition(onSuccess, ...)
  1. utiliser des “fat arrow function” qui ne change pas le scope (i.e this)
created() {
  const onSuccess = () => {
    this.Lat = ...
  }
  ...getCurrentPosition(onSuccess, ...)

PS: par pitié, copiez le code dans des balises de code, ne postez pas des screenshot