Использование реквизита в расчете Vue. js - PullRequest
0 голосов
/ 19 марта 2020

Я вычислил свойство следующим образом:

  display() {
     return this.labs.map(function(x, i) {
        return [x, this.plotDt[i]];
      });
    }

Он получает данные в виде реквизитов:

  props: ["plotDt", "labs"],

Это массивы одинаковой длины (я ввожу два массива: [a,b,c] [1,2,3] и ожидаем получить сопоставленный массив: [[a,1],[b,2],[c,3]]

Однако как-то это не работает, и когда я проверяю в VueTools, я получаю сообщение: "error during evaluation" Я действительно не знаю, что может быть не так в этом случае.

Ответы [ 2 ]

1 голос
/ 19 марта 2020

this не будет иметь области видимости внутри функции, если не использовать функцию стрелки или связывание this с map

Проблема может быть решена как

display() {
 return this.labs.map((x, i)=> {
    return [x, this.plotDt[i]];
 });
}

или

display() {
 return this.labs.map(function(x, i) {
    return [x, this.plotDt[i]];
  },this);
}
1 голос
/ 19 марта 2020

Возможный обходной путь может быть:

 display() {
     const vm = this;
     return this.labs.map(function(x, i) {
        return [x, vm.plotDt[i]];
      });
    }

И также возможно, что вам нужно go для метода вместо вычисления. Разум делиться кодом пера?

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