Почему смонтированный хук моего компонента vuejs не может ссылаться на некоторые методы из того же компонента? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть Vue js компонент. Смонтированный хук может вызывать некоторые методы, а не другие. Например, мой смонтированный хук может вызывать метод printSomething (), но не showLayers ().

  mounted() {
      this.printSomething()
      this.showLayers();
  },
  methods: {
    printSomething() {
      console.log("hello world");
    },
    showLayers() {
      var tempSelectedLayers = []; 
      for (var i = 0; i < this.layers.length; i++) {
        var layer = this.layers[i];
        console.log(layer.layerName + ", " + layer.checked);
        if (layer.checked == true) {
          tempSelectedLayers.push(layer);
        }
      }
      eventBus.$emit(
        "showLayers",
        tempSelectedLayers
      );
    },

* vue cli отображает сообщение об ошибке:

vue .esm. js? A026: 628 [Vue warn]: ошибка в Обработчик события для showLayers: «TypeError: _this.showLayers не является функцией» *

Из тестирования моего кода по URL-адресу локального хоста становится ясно, что функция showLayers () действительно вызывается несмотря на то, что сообщение об ошибке. Если я удалю вызов showLayers () из смонтированного хука, то желаемое поведение не произойдет. Это говорит о том, что ошибка связана с состоянием гонки. Если так, как я могу решить это? Приветствия

1 Ответ

0 голосов
/ 25 февраля 2020

Ошибка не относится к вашему вызову метода showLayers в смонтированном хуке. Как вы сказали, метод вызывается. Ошибка относится к этому коду, который также использует имя showLayers:

      eventBus.$emit(
        "showLayers",
        tempSelectedLayers
      );

Проверьте компонент, который вы излучаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...