BeforeMount не работает с вычисляемым методом - PullRequest
0 голосов
/ 03 августа 2020

Здравствуйте, у меня проблема всякий раз, когда я перезагружаю свою страницу, я хочу вызвать метод beforeMount () для вызова моего filterRecords (вычисляемый метод), чтобы я мог получать данные, но он просто не работает нормально, он говорит мне, что filterRecords не является функцией.

My computed:

computed: {
    ...mapGetters({
      sec: "sec"
    }),
    createdDate() {
      return moment().format("DD-MM-YYYY ");
    },
    createdHours() {
      return moment().format("HH:mm ");
    },
    filteredRecords() {
      return this.records.filter(record => {
        return record.template_id === this.sec;
      });
    }
  },

поэтому я просто делаю это:

beforeMount() {
    this.filteredRecords();
  },

он не вызывает его, поэтому я ничего не получаю filterRecords.

как я могу вызвать его, когда я перезагружаю страницу (я получаю данные записей из рельсов API)

Ответы [ 2 ]

3 голосов
/ 03 августа 2020

Обязательно ознакомьтесь с Vue документами о вычисленных свойствах.

Вы должны вызывать их не как функции, а как свойства (поскольку они являются вычисляемыми свойствами).

Вы можете попытаться сохранить лог filteredRecords в хук beforeMount следующим образом:

beforeMount() {
   console.log(this.filteredRecords)
},
0 голосов
/ 03 августа 2020

Это похоже на фундаментальное недопонимание того, как работают вычисляемые свойства. Доступ к вычисляемым свойствам осуществляется так же, как при доступе к реквизитам или данным компонента. Они используются как ценности, а не как методы. Большой намек на этот факт заключается в том, что вы вызываете map**Getters**

. Вы можете использовать filteredRecords в своем шаблоне примерно так:

<div v-for="record of filteredRecords" :key="record.someKey">...</div>

или назначив его свойству данных this.records = this.filteredRecords

...